Migrating this blog from WordPress to a static site powered by Eleventy and CloudFlare Pages

This week I decided to migrate my blog from WordPress to a static site platform. My site was previously hosted on a Digital Ocean droplet which I maintain, which is fine, but there is some effort involved and I did't really need all the functionality of WordPress so out of curiousity I thought would do some research into what is available for website hosting in 2024.

First I thought I would look into other WordPress hosting platforms. It looks like you can get a single site hosted for around £2.50-£3 per month for a basic plan.

WordPress Hosting

As an alternative to running your own CMS like WordPress, there are also quite a few companies offering full "website builder" platforms. However, they are relatively expensive in comparison.

Website builders

Anyway, it has been sometime since I last posted on my blog... nearly 9 years in fact! A lot has changed in the tech space since then, so I thought I should see what other options are available. I had heard a lot of buzz around static website builders, but I hadn't really used one myself, so I decided to give one a try.

I reaslied that CloudFlare offer a product called CloudFlare Pages that has a generous free tier and it works with a number of static website generators.

After a brief discussion with ChatGPT o1-preview we decided to try eleventy. I asked o1-preview to make a migration plan, and it helped map out a plan to export the existing posts, convert them to markdown, extract the images, configure eleventy and then set up this new site. I also used aider quite extensively to help with the code. I like the fact that you can easily add files to your chat, and that it maps out the codebase for the llm. It's also really good at precisely editing files using a diff format.

Strangely some of what would appear to me as the more complicated tasks (e.g. create a blog category structure from the category tags in the markdown files, then make these navigatable with landing pages and a dropdown menu) were easy for the llm and it would solve them almost fully on its first try, whereas tasks that looked simple to me (fix this bit of padding in the nav links) would require many rounds of back and forth even if the solution was to just remove 60px of padding.

The process has been very educational. It has still required multiple hours of work from me, but I can imagine a time when this kind of migration would be fully automated.

← Back to Blog