Kaveh Moravej

Say Hello to Jekyll

It doesn’t seem like too long ago when I migrated my Wordpress site to Nibbleblog. In fact, looking at my post history it was roughly two years ago now when I first made the move. It was a breath of fresh air moving away from the bloat of WordPress to the simplicity of a flat-file CMS (content management system). I was certainly happy with its minimalist design and goals, but there was one thing that kept bothering me: it was the fact that I had to log-in to the web GUI every time I wanted to post anything. Of course I never drafted anything using that interface – that was almost always done in Vim – but having to copy and paste the content, then edit the title, description, URL, etc. all through the web GUI simply felt too cumbersome for what was meant to be a minimalistic CMS.

In early 2016, the main developer behind the project also informed the community that he was moving onto another project, and that Nibbleblog would only be receiving security updates from that point on. I had no need for any additional functionality – if the code works, it’s often better to leave it as it is – but any abandoned project is eventually destined to fall behind with the times; think of how web pages from the 90s look to us now.

Feeling at home in the terminal, I kept looking around every once in a while for another flat-file CMS that was somehow a little simpler. There was the ultra minimalistic bashblog, that made use of a single Bash script and allowed for writing of posts in a terminal using Markdown. But the design felt somewhat unappealing, and it seemed as though it had already succumbed to some unnecessary bloat, especially with its social media integration. There was also little documentation on migration. Of course you can always host a new site alongside the old, but I preferred to have everything in one place.

By sheer chance, one of the comments on a post about Ivy – a static website generator – mentioned another similar project called Jekyll. I had heard of Jekyll but never looked into it in much detail. The consensus seemed to be that this was the flat-file CMS to use. I found one post particularly convincing and the more I read about Jekyll the more it seemed to tick all the right boxes. Everything about the code and design seemed beautiful and simple. So what is Jekyll exactly? As the website states:

Jekyll is a simple, blog-aware, static site generator. It takes a template directory containing raw text files in various formats, runs it through a converter (like Markdown) and our Liquid renderer, and spits out a complete, ready-to-publish static website suitable for serving with your favorite web server.

Another big plus for Jekyll is the excellent support for migration. Just about every popular CMS is supported, and if like me you use one of the more obscure ones, it can simply import the RSS feed. In my case, Nibbleblog only had an atom feed, which required some quick “find and replace all” commands in order for the importer to properly parse the xml file. Even so, a small number of my old posts have their content mysteriously missing, which I will have to add later. It wasn’t quite as simple as I had hoped, but then migrating to another platform almost never is! The initial installation also threw up some errors until I managed to install all the proper Ruby dependencies on my server. It also takes a while to figure out how to generate and build a website, but once you get the hang of it the process to update your website or add a new post or page is nearly effortless.

The initial Minima theme is nice, but I preferred the minimalist aesthetic of the Kiko theme which was similar to what I was using on Nibbleblog: simply a page with post titles. In fact, after making my own modifications, I think this might possibly be even more minimalistic than my Nibbleblog theme, as I have done away with the title and tags (again!).

Did I mention that I wrote this entire post up in Markdown within the zen-like temple of Vim, free from all gooey GUIs? Of course, I shall miss Nibbleblog and its mascot, Mr Nibbler, that wise squirrel who first revealed the true path to enlightenment. He shall forever remain with this blog in spirit, all while working tirelessly to crush the forces of ignorance and obfuscation.