• An Unpatched RCE on a Church Website: Moving It Off an End-of-Life Host

    A parish church website was running on a single cloud droplet with a stack that had quietly gone end-of-life: PHP 7.3, WordPress 6.6.2, MariaDB 10.4. That part is common. What made it urgent was the 2026 “php2shell” set of pre-auth PHP remote-code-execution vulnerabilities (GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp). On a supported PHP there is a patch. On PHP 7.3 there is no patch, because 7.3 is past end-of-life and upstream stopped shipping fixes. The only real remediation was to get off that stack entirely.

  • Designing a Car Computer: The Plan Before the Parts

    You know you want to own your own KITT. Every little boy who grew up in the ’80s thought about it. I did. I never thought it was possible. With all the AI tools we have now, it is more realistic – and, in the same breath, a little less interesting. But I still wanted to get it dialed in.

  • Designing a Car Computer: Sourcing the Hardware

    The whole build starts with one stubborn constraint: the truck sits for days at a time, and when it sits, nothing is supposed to be awake. This is a computer for a 1969 Chevy Blazer (and a second truck, a Dodge). It sleeps until my phone comes near, wakes, boots, and talks. Offline-first, low power, always-on sentry that draws almost nothing and a real computer that stays dark until it is needed.

  • From EC2 To My Desk: Moving a Django Site (dtac.io) Home

    The last big cloud holdout I had was a Django site on an AWS EC2 box. You are reading this one, the Hugo site, from the same desk now - but dtac.io was the one that had an actual database in it. That made it the interesting one. This article is the record of dragging a real, stateful web application off a rented VM and onto the little cluster sitting next to my keyboard.

  • Welcome Home... To My Home - From Cloud To Self-Hosting

    It started with this website here. For years this site sat on an AWS EC2 instance, with S3 hosting some images. It cost around $4/mo so it wasn’t much. But I got to thinking about it. Within that year I could have paid for a little machine. With about 10X the power. Literally. And it was even more than that. It was remote, and static, and hard to update, which meant it was stale. As you can see by the posts it was very stale. Then we start expanding that math to the bigger sites I had. Then it hit me pretty hard. I’m just burning money.

  • How an AI Coding Agent Rebuilt This Site

    The bottom line

    This site was rebuilt by an AI coding agent, and this page is the part of that job most people do not see. Below is not just what happened. It is also the boring, nerdy underneath: what the model is, how the work is measured, what tokens, wall time, and effort actually mean, and why a human would even bother.

    That is the part an SEO crawler will eat up, and the part a curious engineer will actually enjoy.