Goodbye Octopress, Hello Jekyll

2 minute read

It has been almost four years since I last tinkered with my site. I recently got a message from my service provider that the hardware of my old server was being discontinued, requiring me to move to a new one. As usual this is a good opportunity to refresh the technology I am using and update the design of the site.

I have been using Octopress for years now, first Octopress 2.0 which relied on cloning a Github repo and modifying the content, then Octopress 3.0 which was refactored to providing all enhancements as Jekyll plugins.

I had originally planned to just upgrade to latest versions of packages and changing the theme I used, but this proved challenging. Octopress hasn’t been updated by the author for a long time and pull requests provided by others are mainly untouched so the tool seems pretty dead by now. This also means that it isn’t compatible with a lot of the latest Ruby and Jekyll packages. I therefore decided it was just as easy to find a nice Jekyll theme and start over with a fresh Jekyll site.

I am not advanced enough to create a Jekyll theme from scratch on my own. I therefore rely on the work of others. The last iteration of my site I used the HPSTR theme from Made Mistakes. Though I was medium happy with the design, the theme itself was feature rich and very well put together. It was therefore easy choice to start at the same place this time, too.

The theme Minimal Mistakes is very simple and clean. I really like this one. It is very easy to customize, well documented and provides almost all features that Octopress was providing for me earlier. This has let me eliminate nearly all Octopress plugins I was using. I have kept the main Octopress plugin as the commands it has for post management and site deployment is still very convenient to use.

Another really nice feature of this theme is that it is gem-based. All the theme defaults are packaged into a Ruby gem which significantly reduces the number of files you need to manage. Just include the gem in your Gemfile and make a _config.yml and you are good to go.

As part of the tool refresh, I have started to use wsl (Windows Subsystem for Linux) with Ubuntu distribution for all command line operations, i.e. Jekyll compiling and site deployment. This was a step change as most site management tools are Linux based, and I don’t have to spend time trying to find Windows versions of common Linux commands any more. E.g. it let’s me use ruby-install and chruby to manage Ruby versions.

I made this post to document for myself the changes needed to migrate to new theme and Jekyll 3 like I did when I migrated from Octopress 2 to 3, but this operation was quite painless and needed very little customization and change of my old posts.