Skip to main content

I Killed My WordPress Site in a Weekend (With an AI Sidekick)

From WordPress to Hugo — rebuilding my site in a weekend

I have been threatening to kill my WordPress site for years. It was slow, it was a pile of plugins I did not trust, and every time I logged in there were four updates and a vague sense that something was about to break. For a guy who spends all day telling people to own their infrastructure, running my personal site on a CMS I did not enjoy maintaining felt a little hypocritical.

So this weekend I finally did it. The site you are reading is now a static Hugo site, built on the Congo theme, hosted out of my own homelab on Podman behind SWAG, on top of a Fedora bootc image. No database. No admin login to get pwned. Just HTML that a tiny web server hands out and never thinks about again.

Here is the twist: I did most of it by talking to an AI agent.

The honest version of “AI did it” #

Let me get the hype out of the way, because you have heard enough of it. The AI did not “build my site.” I built my site. But I had a very fast, very tireless pair of hands doing the parts of a migration that make you want to quit halfway through.

It took my WordPress export and turned 90-something posts into clean Markdown with proper front matter. It swept my entire back catalog — every episode of Into the Terminal, RHEL Presents, the Fedora Podcast, the Sudo Show, the IT Guy Show — and built companion posts so all of it finally lives somewhere I own. The site went from a couple hundred posts to 349. It took a tag list that had ballooned to 306 tags (214 of them used exactly once, because past me had no discipline) and collapsed it down to a clean 33. It set up an image pipeline that spits out responsive WebP variants. That is a weekend of soul-crushing copy-paste that I did not have to do.

What it could not do was know my stack for me. And that is the whole point.

The part where it went sideways (repeatedly) #

If you take one thing from this post, take this: AI-assisted dev is a force multiplier for people who already know their craft, and a trap for people who don’t.

A few greatest hits from the weekend:

  • Dark mode that refused to be dark. The theme was rendering light no matter what. We chased JavaScript, appearance toggles, the works. The actual bug? The color scheme used space-separated RGB values where the compiled CSS expected commas. One character. I would not have known to even look there if I did not understand how the CSS variables were being consumed.
  • The deploy facepalm. I pushed the site to prod and the whole thing came up completely unstyled — naked HTML, Times New Roman, the works. My first instinct was “the theme is missing.” Nope. I had copied the output from hugo server, which hard-codes the base URL to localhost:1313. Every stylesheet on my production site was trying to load from my laptop. The fix was a real hugo --minify build. Obvious in hindsight; not obvious at 11pm.
  • Reorganizing on the fly. Halfway through I decided everything should live under /blog/ instead of the flat URLs, which meant renaming the content section, fixing internal links, and updating the permalinks. The agent did the mechanical rewrite across 300+ files in seconds. I made the call and checked the result.

None of those are AI failures. They are the normal papercuts of a migration. The difference is that when something broke, I could say “check the compiled CSS for how the neutral color variable is formatted” instead of staring at a white screen and giving up.

Why static, why homelab #

For a personal site, static is just correct. It is fast because there is nothing to compute. It is secure because there is no attack surface — no PHP, no database, no login. And when it lives in my own homelab, I am not renting my identity from anyone.

The deploy is almost boring now: build the site to a folder of HTML, drop it onto the share my SWAG container serves from, done. No moving parts to babysit. That is exactly what I want out of the thing that represents me on the internet.

Would I recommend it? #

If you are technical and you have been putting off a migration because it is tedious: yes, absolutely. An agent turns “I’ll get to it someday” into “I did it this weekend.” Just go in knowing that you are still the engineer. It will happily do the wrong thing very quickly if you let it, and you need to be able to tell when that is happening.

WordPress, it has been real. You served me for years. But you are going in the backup pile now, and I am not going to miss the update nags.

See you in the terminal.