Problem
This site began as a static portfolio: every copy tweak, new role, or project update meant a code change and a redeploy. The content needed to be editable from anywhere, without giving up the engineered feel of the site.
Approach
Rebuilt on Next.js 15 with all content in Neon Postgres accessed through raw tagged-template SQL. No ORM: the whole data layer is two readable files.
The admin console is schema-driven: each section is field config plus a Zod schema, and the list, create, edit, delete pages, forms, and SQL are all generic. Sign-in is GitHub OAuth with a single-account allowlist checked at four layers. Saves call revalidatePath, so public pages update instantly while normal traffic stays ISR-cached.
First-party analytics with no cookies or IP addresses feed an admin dashboard, and site images live in Vercel Blob with upload, replace, and delete handled by the admin kit.
Outcome
Content edits go live in seconds from a phone. The build carries 200+ tests with enforced coverage thresholds, CI against a Neon branch, and a deploy that migrates its own database first.