The About Page Took Two Drafts
I’ve been meaning to have a proper web presence for a while. Not a LinkedIn profile that updates itself every time I get a new certification, but somewhere I can write about what I’m actually building. This is that place.
The setup took a couple of days. Most of it was infrastructure I already had — GitLab for version control, Plane for tracking work, Mattermost for notifications, Infisical for secrets. The WordPress install on A2 Hosting is the only piece that lives outside the homelab, mostly because I wanted the blog reachable if I’m doing something dumb to the network.
The thing I spent the most time on wasn’t the theme. It was a service I call the blog scheduler — a Python script running on Proteus (the homelab server that handles automation) that checks a private Mattermost channel every 12 hours. If three or more days have passed since the last post and there are notes in the channel, it asks whether to draft something. If I say yes, it calls a local LLM running on a GPU server in the house, gives it a persona directive, and creates a WordPress draft via the REST API.
The idea is that I can drop links and rough notes into the channel whenever I’m thinking about something, and the system turns them into a draft on a schedule. Nothing gets published automatically — I still review it. But lowering the activation energy is the point.
The other thing worth mentioning is the About page. The first draft read exactly like an AI wrote it — which it did. “The quality engineering lens is an interesting one.” That kind of sentence. I deleted most of it and asked myself what I’d actually say to someone at a meetup. The answer came out as: “If it’s a rock that’s been mined, electrocuted, taught math, then with math — taught language, I probably work with it in some way.” That line stayed. The rest of the page followed from it.
The theme is custom — dark navy, Playfair Display headings, Inter for body text, a constellation animation in the hero that turned out too busy on the first pass and had to be tuned down. The constellation is canvas-based: particles in the green/blue/purple palette drift slowly, connecting lines fade by distance. Subtle now. It does what it’s supposed to do without being the point.
Posts here will be about what I’m building. Homelab work, quality engineering observations, project post-mortems. The blog scheduler will draft most of them from notes I drop into Mattermost. This first one I wrote by hand, which felt appropriate.