Blog

A Week of Fixing and Building on This Site

← Back to Blog

It started with the GitHub Action failing to deploy. Nothing dramatic, just a red X in the Actions tab. Turned out the server had been stuck for days: a quirk in the deploy script meant npm was rewriting files that git then refused to overwrite on the next pull, so every deploy since a routine template migration had been silently failing. Fixed the script, unstuck the server, and while I was in there also caught that the git remote on this machine was pointing at a folder on disk instead of GitHub, so pushes had been going nowhere useful either.

Once deploys were working again I noticed the server was still on Node 18, which is past end of life. Upgraded it to Node 24, rebuilt everything clean, and moved on.

That got me wondering what else might be quietly wrong that I just hadn't gone looking for, so I ran a proper audit against my own infrastructure. OSINT recon, header hygiene, a service scan, all of it. Found some real things: no SPF or DMARC on the domain, which is not a great look for a site that hosts a phishing analyzer, missing security headers, and an error handler that was leaking stack traces to anyone who hit a bad URL. Fixed all of it. The full writeup is over in Research if you want the details.

While the app was already open, I added this Blog section, plus a "latest content" feed on the homepage so new posts and projects actually show up somewhere instead of only existing at their own URL.

Then I kept finding small things worth doing while everything was already open anyway: an RSS feed, a sitemap, actual meta descriptions instead of nothing, a Dependabot config so dependency updates land as reviewable pull requests instead of me running npm audit fix --force and hoping for the best, and a real test suite that runs in CI. Turns out npm test had been silently doing nothing this whole time. Also set up uptime monitoring, since that stack-trace bug above was live for longer than I'd like to admit before anyone noticed.

None of this was on a roadmap. It's just what happens when you go looking for one thing and keep finding the next one.