A quick meta-post incoming! This site has been running on WordPress and Dreamhost for 18 years. It worked fine, but the overhead was really starting to get to me: a MySQL database, monthly hosting costs, plugin updates that arrive every other week, and embarrassing page load times…
I’ve wanted to move to a static site for years, but it felt impossible. Every time I started to think about it I just gave up. How do I migrate 1,700 posts without breaking almost 20 years of URLs? What do I do about search? The Last.fm widget? Email routing? The existing CSS? There were too many things I didn’t know I didn’t know, so I never got very far.
A few months ago I started working on a fresh migration plan with Claude Code, using the obra/superpowers skill set. Not to write code yet, but to think through the plan. What’s the best long-term architecture for a move like this? What’s the actual order of operations? Where are the traps?
We iterated on it many times over several weeks. Each pass surfaced something I hadn’t thought about: redirect strategy, shortcode handling, whether my existing CSS depended on WordPress-specific class names, email routing before cancelling the old host, rollback options if something went wrong… The plan got longer and more detailed, but it also got clearer. What had felt like an insurmountable thing gradually became something with known phases, concrete steps, and tradeoffs I could actually evaluate.
By the end of the planning process, the migration had a 1,300-line plan covering everything from exporting WordPress content to the DNS cutover runbook. And then Claude and I did the actual migration… in a single weekend.
So WordPress and Dreamhost are both gone. What you see here now is Astro, deployed to Cloudflare Workers, with no database and no server-side runtime. Content lives as Markdown files in a git repo. Search runs entirely client-side via Pagefind. And of course, it’s also the fastest the site has ever been.
A lot of people I know have a project like this — something they’ve wanted to do for years, have started and abandoned, and have filed away under “someday.” It stays there because the project doesn’t feel possible. You can’t begin to think of all the complexities involved, so you just don’t start.
I think we’ve learned now that AI is pretty good at making work legible. If you iterate on a plan long enough the project stops being a vague, scary thing and becomes a checklist you can actually run through. So hey, find your “I’m free” thing. It might be more doable than it looks.