A portfolio and technical blog built as a database-backed CMS. Authoring happens entirely in a browser admin — no git ingest, no markdown build step, no static generator, with Postgres as the single source of truth. The only one of the three that is finished, deployed and in daily use, which is why it is the front door.
A blog is a modest brief, so the interest is in what was deliberately over-built — a directive layer, a theme engine, a document graph, and every social feature written first-party rather than embedded.
One table for posts, projects and pages — they differ by kind, not by schema. This page you are reading is a kind='project' row.
Comments, reactions, the newsletter and analytics are all first-party tables. Nothing on the site calls a third-party tracker or an embedded widget.
Everything below is deployed and in use today, not planned. The two amber rows are honest about being half-built — the migration is in, the surface is not.