The subject matter has shifted over the years — from project management and early machine learning curiosity, through a Web3 phase I prefer not to dwell on, into infrastructure, enterprise platforms, and the kind of work that sits in the gap between teams and quietly costs everyone time. But the reason it exists has stayed the same: thinking things through in public, without having to babysit the internet.

The platform history runs almost exactly parallel to chinesehotpot.co.uk in the early days — same starting point, same reasons for moving, often moved at the same time. Joomla was too restrictive. WordPress was fine until it wasn’t — the spam on this one was particularly bad, worse than the hotpot site, and it took some of the joy out of writing for a while. A brief flat blog on my own VPS followed before I landed on Gatsby, around the same time I was rebuilding the other site as a React storefront.

I genuinely liked Gatsby. The markdown-based workflow suited me, and I had a CI/CD pipeline running that made publishing feel almost effortless — write, push, done. It was actually the experience of working in that Gatsby setup that convinced me to move chinesehotpot.co.uk onto it as well. When a stack is a nice place to be, you want to spend more time there.

Then my Debian VPS pricing jumped, significantly. The VPS had originally been running some client sites alongside my own, and when the clients wouldn’t absorb the price increase I had to rethink the whole setup. I found a way to make the Netlify free tier work for my personal projects — the clients moved to paid Netlify accounts that I manage, but for my own stuff the free tier was genuinely perfect. Write in markdown, push to GitHub, Netlify builds and deploys. Happy days.

Until it wasn’t.

One post refused to build. After some digging it turned out Netlify was running a different Node version than I was developing against. I updated locally to match, which promptly triggered a dependency hell that took days to untangle. Eventually I got everything working again. Until the same thing happened. And then again. Netlify would change something, a dependency would break, and I’d be back in the weeds. It happened enough times that I started to resent a workflow I’d previously loved.

So I built my own Astro site from scratch. This was actually my first real experience with Astro, and I fell for it almost immediately. The content was already in markdown so the migration wasn’t as painful as it could have been — but there were enough differences in how images worked, how styling was handled, and how the structure needed to be thought about that it still took real effort to get it where I wanted it. Once I did, though, it has been rock solid. No mysterious build failures. No dependency surprises from upstream changes I didn’t ask for.

If anything, the problems I’ve had with other stacks since — the GitHub security warnings about ageing dependencies, the general entropy of JavaScript ecosystems — have pushed me further into Astro rather than away from it. It’s become something of a default.

There are quirks. When I first built OneMoreDavid on Astro it was a younger framework, and some of what I did then isn’t quite how you’d do it now. Migrating or rebuilding means learning the current way rather than just copying the old approach. Mostly that’s fine — I like the tinkering. Mostly.

The blog itself reflects an honest career trajectory. Early posts were project management and security adjacent, with some machine learning curiosity that probably seemed more confident than it felt. The middle period wandered through data analysis and Web3 before I quietly moved on. More recently it’s been infrastructure, Linux, enterprise systems, and the hidden complexity of work that looks simple from the outside. The lens has shifted more than the subject matter — I’m more interested now in why things behave the way they do than in cataloguing what tools exist.

The comments situation deserves a mention. Open comments on WordPress were a disaster — noise, spam, low-effort reactions that added nothing. For a while I turned them off entirely. These days the blog uses Giscus, which backs comments with GitHub discussions. You need a GitHub account to leave one, which keeps the signal-to-noise ratio sane without feeling hostile. Engagement is light, and that’s genuinely fine. The primary audience has always been me.

Tags: