I rebuilt this site to be a place I actually enjoy maintaining. A few decisions I'm happy with.
Photos without redeploys
The photography page pulls from a public Google Drive folder at request time, cached for a minute. Adding a photo is a drag-and-drop — no commit, no deploy. The Drive API even hands back EXIF, so each shot shows the camera and settings it was taken with.
Motion with a budget
Every animation here has to earn its place. There's a load sequence on the hero, a cursor-following preview on the work list, and a circular reveal when you flip the theme — and then I stopped. The fastest way to make a site feel generated is to animate everything.
The stack
- Next.js App Router, statically rendered where it can be
- Tailwind with a single accent token I can recolor in one line
- Framer Motion for the orchestrated bits
- MDX for these posts
That's it. Nothing here is load-bearing that I couldn't explain in a sentence.