The story
Dan builds extensions. He does not win work by explaining joinery — he wins it by showing a homeowner a kitchen that used to be a garage, in a house that looks like theirs. So the gallery is the site, and the site is the gallery.
Which is why it was 38MB. Every project page loaded every full-resolution photo straight off the camera, on a page builder that shipped its whole widget library alongside them. On a phone, the first image landed after nine seconds — and homeowners research three builders in one evening.
The photos did not get smaller to look at. They got smaller to download: converted, lazy-loaded, and served from a cached page that never boots PHP. Same portfolio, same impact, arriving while they are still interested.