wag.dk

FIELD NOTES
ENTRY No. 001
Personal Projects / wag.dk — 2026-08-16

Why I Ditched WordPress and Built My Own Blog

A pile of JSON, a few Jinja2 templates, and an API that writes the posts for me

This is entry 001, so it seemed right to make it about the site itself.

I'd been running the usual WordPress setup for years — the kind of thing where every login greets you with a stack of plugin updates and a nagging feeling that half of them are unnecessary attack surface. I don't need comments, page builders, or a database. I need somewhere to write things down: shuffle simulations, notes from the Data Warehouse rebuild at work, garden updates, whatever else is on my mind.

What replaced it

No CMS, no database. The whole site is: a couple of Jinja2 templates (homepage, single post, category page), and two JSON files — one holding every post's metadata (posts.json), one holding the category/subcategory tree (categories.json). A small Python script reads both and renders static HTML. That's the entire backend.

The part I'm most pleased with

Writing a post is a two-step pipeline. I send the raw material — a description, some images, maybe a few scripts — to the Claude API with instructions to return a single structured JSON object: headline, subheadline, category, body, everything. That draft lands in a local folder for me to review before anything goes anywhere. Once it looks right, a second script takes that JSON, copies in any attached files, renders the actual post page from the template, and updates the two index files.

No dashboard, no login screen, no "critical security update available" banner. Just files.

What's next

Category pages aren't wired up yet, and the homepage needs to actually pull real content once there's more than one post to show. But the plumbing works — which is honestly the part I care about most.