Migration from Wordpress to Jekyll

2 minute read

TL;DR - Migrated 11 year old Wordpress blog to Jekyll. Wouldn’t recommend at all to multi-user, beginner, or corporate entities. Was a fun and geeky experiment for a weekend project. Picked up some ruby programming along the way.


It was time. I have been running this blog faithfully on Dreamhost since 2006. It started during a time when I was much younger, and much less wise. I remember battling the desire to go with static HTML pages or to go with one of these new CMS systems I was reading so much about on IRC. Here we are full-circle back on static HTML pages…As with all tech things, it is cyclical for sure.

The migration from Wordpress has been on the to-do list for ages, but due to the complexity of migrating 11 years of posts and metadata, I just frankly gave up due to my limited time. Today though I had to deal with ANOTHER maintenance issue with my installation and, frankly, just grew tired of death by a million paper cuts. The blog for the most part cut over cleanly, but there are some residual page issues with older posts that I will clean-up when I am retired.

New Workflow

Normally I would simply login to Wordpress and draft my posts in the WYSIWYG interface. Now though, I fire-up vim and create a Markdown file with my posts. This introduces some complexity, but for the most part I have eased the transition via my private git repo to handle drafts.

A tool that is proving invaluable is jekyll-compose which helps ease the command structure and date/time construction. A small step, but one that is at least more consistent.

For those on Dreamhost or a hosting provider with a similar htaccess configuration, Janet’s was a huge timesaver for me not having to generate a config!

As the website is now compiled I can automate posts and publishing with git which is pretty nifty. Another justifiable reason I need a data centre in my basement :grin:

Quick hits

  • This exporter worked better than any of the other Wordpress plug-ins. Due to sheer amount of posts I decided to run it from the CLI. Thanks to Ben Balter for his awesome work on it. You can find the plugin here.
  • Jekyll runs really slow on WSL if you are on a Windows machine. This has to do with the poor I/O performance.
  • Themes can be tricky. The documentation varies wildly between the major supported platforms.
  • I ended up having to ed/sed/awk/tac my way to cleaning up some residual plugin data from the exported pages. Disable as many plugins on Wordpress as you can before running the export. For example the “share” plugins attach a ton of HTML crud.

History Facts

This blog started when…

  • Wordpress 2.0 was the latest release. I originally started with 1.5 due to the sheer amount of issues with the dot release.
  • Debian 3.1 Sarge was the latest and greatest with the first Ubuntu LTS (late-to-ship as the joke was) to be released.
  • Windows XP Professional x64 was running most of the Windows desktops around the globe. I was working for the United States Air Force during this time and deploying Windows 2000/NT4 servers on VMware GSX with early VDI Configurations.
  • I still have the 80GiB iPod “Classic” that sync’d to my Linux workstations using gtkpod and iPodder to grab the first podcasts back then for running.