Rebuilding My Site with Eleventy and AI

· 5 min read

My website had been on autopilot for a while. I'd been keeping up with WordPress core updates, but beyond that? Not much. I'd been heads-down working with a couple of marketing firms, building and maintaining sites for their clients — which meant my own site kept getting pushed to the back burner.

When I finally took a good look at it, a few things stood out. Some of the portfolio pieces were years old, and several of those projects we had already gone through redesigns since I posted them. The whole thing needed a refresh.

Why Not Just Stay on WordPress?

My first instinct was to rebuild in WordPress — it's what I do, it's my bread and butter, and I know it inside and out. When I ran the idea by Claude, sharing my Upwork history and LinkedIn experience, it came back with the same recommendation: stick with WordPress. Honestly, probably the smarter call for most people.

But I wanted a project where I could go deep with AI — building a complete website from scratch, end to end, and seeing what the experience was actually like. So I kept going.

Why Eleventy Made Sense

One thing that's become clear working with AI tools is where they shine and where they don't. Page builders like Elementor are a great example of where AI struggles — they're UI-driven, visual, full of drag-and-drop interactions that don't translate to text. AI can't really work in that environment, yet.

What AI does handle well is text files. Markdown, HTML templates, config files — that's its natural habitat. Eleventy works entirely in that world. You write templates and markdown, run a build, and out comes a static site. It's a perfect match.

I'd actually built an Eleventy site about a year and a half ago, before AI was anywhere near what it is now. Back then, I'd inherited a flat HTML site — no templating, nothing. Every page was its own standalone HTML file. Updating the header or footer meant touching every single file. It wasn't a huge project, but it was tedious enough that I converted the whole thing to Eleventy so we could work with real templates. That experience gave me a solid foundation for this one.

The Migration

This time around, with AI in the mix, things moved fast. Claude scaffolded the basic site structure — layouts, partials, config, everything — and I barely had to touch the code directly. Once the foundation was in place, I exported my WordPress content as a WXR XML file and Claude wrote a migration script to handle the rest.

The script parsed the XML, converted each post's HTML to Markdown, downloaded the referenced images, and generated a properly formatted markdown file for every post. I had around 180 posts, some going back almost 20 years — tutorials for software that doesn't even exist anymore, posts about tools that have long since been replaced.

Claude flagged this pretty quickly. It went through the post history and marked anything not directly related to WordPress as a draft, keeping those out of the public build while leaving them in the repo. It was a useful reality check — some of that old content probably does more harm than good sitting on a professional site.

Solving the Static Site Gaps

A fully static site does have some real limitations compared to a dynamic CMS. Two that came up immediately were forms and search.

For contact forms, we went with Web3Forms. It's a simple service — you POST to their API, they handle the email delivery. No server-side code required, works perfectly with a static site.

For search, Claude recommended Pagefind. It runs after the build and indexes all your content, generating a small set of files the browser can use to search locally. No backend, no API calls at runtime — it just works. I was skeptical at first, but it handles my volume of posts without any issues.

Was It Worth It?

Yeah, I think so. The site is faster, hosting is simpler, and the whole thing is easier to maintain going forward. Adding a new post is just writing a markdown file — no WordPress admin, no database, no plugin conflicts.

The AI-assisted workflow was the real surprise. What would have taken me several days of setup and wrangling on my own came together in a fraction of the time. We are not talking days here. It was a few hours. The migration script alone would have been a multi-hour task; instead it was a short conversation and a working script.

It's not a replacement for WordPress when clients need a full CMS, e-commerce, or complex backend functionality. But for a developer's personal site? Eleventy with AI assistance is a genuinely good stack.

I'm also building a wordpress plugin using Claude now. I'll write about that soon.