Reset (again)
Third blog at this address. The first two — b2evolution then WordPress, then Ghost — each ate themselves in different ways. Database corruption. Plugin incompatibility after a major version bump. A migration that quietly truncated half the posts. Each time I lost work I'd forgotten I cared about until it was gone.
So this one is different. There's no database. There's no admin panel. There's no runtime to keep patched. The posts are markdown files in a git repo. The "blog engine" is about 120 lines of Node that turns markdown into HTML. Every post I've ever written from now on is a file I can cat from any laptop, anywhere, for the rest of my life.
The lesson took me three losses to internalise: every additional moving part is another way to lose your work. Picking the boring stack isn't a constraint — it's the feature.
I'm not going to try to recover the old posts. Some of them lived for a few years on the Wayback Machine and could probably be rescued, but the version of me that wrote them is far enough away now that the writing wouldn't be representative anyway. Better to let them rest.
What this site is going to be, going forward: a mix. Distributed systems writeups, debug stories from Aletheia and the homelab, music production thoughts, the occasional reflection. Some posts will be 200 words. A few will be 3000. Both count as content. The thing I keep failing at is the "publish the short one even if it doesn't feel meaty" muscle, so I'm going to deliberately err in that direction this time.
If you used to read here and you're surprised it looks different — yeah, fresh start. The aesthetic is borrowed from Aletheia's design system because I've been staring at that palette for months and it's grown on me.