Colophon

Built the way I like to build: boring infrastructure, fast pages, one place to edit everything. The whole site is statically rendered and revalidates on demand when content changes.

Framework
Next.js 15, App Router
CMS
Payload 3, embedded — content lives with the code
Database
Postgres on Supabase
Hosting
Vercel, static with on-demand revalidation
Type
Instrument Sans
Resume PDF
Generated from the same CMS data as the page — one source of truth
Portrait
Watercolor illustration

Built by me, including the parts that would’ve been faster to outsource. That’s sort of the point.