The two places an Astro site can put an image, and why it matters
My CV and photography. The repo dates to October 2017; the Astro site in it was written in February 2026, and everything before that was a different site under the same name.
The technical content is images, which is where an Astro photo site goes wrong.
Files in public/ bypass the optimizer entirely and ship at whatever size they
were saved at. Files under src/assets/ go through astro:assets and get
resized, format-converted and content-hashed. The photography lives in
public/img/photography/, so it ships unoptimized, and that was the trade:
public/ gives stable URLs that survive a rebuild, and things link to these
images. Content hashing is right for assets nothing references from outside and
wrong for anything with inbound links, where a silent URL break is worse than a
larger file.
A bot/ directory sits alongside with its own package manifest and env example,
so the repo is not purely static in practice even though it deploys as though it
is. Deployed by GitHub Actions with public/CNAME pinning the domain. Filenames
are timestamps, which orders them and publishes when each photograph was taken.
Still active.