Building This Site and the CMS Behind It
A portfolio kept current through its own single-admin CMS, where every word on the page is editable and a change goes live without a rebuild.
- Role
- Design, build, and content
- Stack
- SvelteKit · Postgres · Netlify
- Scope
- App, CMS, analytics, design system
- Year
- 2026
A portfolio has to stay current and prove its claims
A static site needs a rebuild for every edit, so the edits stop. A hosted CMS keeps content current but shapes it around its own model and its own editor. And a site that claims to be accessible and well structured has to demonstrate both on the page itself, where any visitor can inspect the result.
One vendor, one person, no servers
Everything had to run on Netlify: serverless functions, Netlify DB for Postgres, Netlify Blobs for images, no persistent process and no file writes. One admin, so no user table and no roles. Every word on the public site editable, including labels and error copy. Secure by default, because the editor is reachable from the internet.
SvelteKit as the whole stack
Server loads read Postgres through Drizzle and render the public pages; form actions write. Zod validates every untrusted boundary from the contact form to the reorder payload. The CMS is thin routes over typed mutations: two singletons, five sortable collections with drag-to-reorder built once, a leads inbox with status, and a dashboard fed by a first-party event beacon with a real-or-mock data toggle.
Derived state and role-based color
Nothing derivable is stored: section numbers, case indices, and reading order come from position. Tokens are primitives and the theme is the only place a role meets a mode; a contrast audit later split the accent into a fill step and a text step so both themes clear 4.5:1 without a second hue. Analytics are first-party and privacy-respecting rather than a third-party script.
Editable in a minute, verifiable in the browser
Content changes go live without a rebuild. Both themes pass WCAG 2.2 AA, verified by script and by axe on every page. The design system is documented from the code it ships, and the site you are reading is the running proof.
Figures
Screens, diagrams, and documents from the work.