Finally Making 14 Years of Posts Searchable
I spent a slow week after the holidays bolting real full-text search onto this blog's 14-year archive using Pagefind, and it took about an hour once I stopped overthinking it.
I spent a slow week after the holidays bolting real full-text search onto this blog's 14-year archive using Pagefind, and it took about an hour once I stopped overthinking it.
A walkthrough of the janky little server-cleanup ritual I do every January, from pruning Docker cruft to finally reading my own cron jobs.
A New Year's Eve ritual: finally fixing my dotfiles backup with a bare git repo instead of the Dropbox folder chaos I'd been living with for a decade.
I finally moved my photo library off Google Photos onto a self-hosted Immich instance running on an old Dell under my desk. Here's how the migration actually went, panicked moment included.
My annual December ritual of checking domains, testing backups for real, and killing off forgotten VPS instances before the year ends.
My nginx logs were full of GPTBot and ClaudeBot hammering old gallery posts, so I finally set up proper server-side blocking and rate limiting instead of trusting robots.txt.
Getting my Advent of Code setup sorted before December hits: a Python env with uv, a boring folder template, and a session-cookie mistake I'm not repeating.
A personal, low-effort fix for the thing that annoyed me most about the October 20 AWS outage: my own tiny status page went down right along with everything it was supposed to be watching.
I finally set up automated offsite backups for this blog after fourteen years of winging it, and the whole thing took about twenty minutes once I stopped overthinking it.
Yesterday's big AWS outage took out half the apps on my phone, so I spent the afternoon checking whether my own tiny site had the same dumb single points of failure.
Notes from actually enrolling an old Windows 10 machine in Microsoft's Extended Security Updates program the day after support ended, including the part about the "free" option nobody explains well.
A weekend spent finally using Claude Code to clean up twelve years of unoptimized blog images, and the one lesson about scoping tasks narrowly that I keep having to relearn.