Back in 2011 I wrote a couple of posts -which became very popular- on why I had migrated from WordPress to Jekyll, and on how to perform such migration in great detail. I had become a big fan of Jekyll, so it may surprise that this site is now running on WordPress again after more than two years. At the time, I justified the choice by saying, among other things, that while I thought WordPress was (is) a great CMS, I also thought it was overkill for my needs, due to features I thought I didn’t need. I even blamed WordPress because I wasn’t writing new content as often as I would like, which was unfair.
When I came across Jekyll I was sold on the idea that it was written in Ruby, rather than PHP (which, btw, I absolutely hate) and I could write my posts in Markdown with VIM, yay! Still today, its popularity is growing, also thanks to free hosting with Github Pages.
At first I had fun with the migration, it wasn’t trivial for some aspects but it wasn’t too complex either since I am a Ruby dev. I had to write scripts to import content from WordPress, reproduce the widgets I had with the WordPress version, figure out how to handle syntax highlighting for my code snippets, figure out how to get related posts working, write tasks to optimise static content, and more. However, I enjoyed the results, in particular the speed of the static site generated by Jekyll, achieved without having to fiddle with some caching plugins as I had to do with WordPress. Another thing I really like of Jekyll is that a site generated with it is inherently secure from an application point of view, due to its static nature: there is no dynamic code and no databases, meaning that there are no administration areas to hack into, no plugins or themes with vulnerabilities to exploit, and so on. Plus, a static site combined with a well-tuned web server like Nginx can help mitigate small DoS attacks -well, in some conditions at least.
Blogging with Jekyll seemed OK a first, but after a while I felt like switching from WordPress had been a mistake. For starters, like many others I had been comparing Jekyll to WordPress while in fact these are two very different things, with the former being a static site generator and the latter being a full content management system. I was clearly comparing apples with oranges.
Reasons why I switched back to WordPress
Publishing workflow and build times
The very first thing annoyed me when using Jekyll was the process with which you get new content ‘published’. I’d write my post in Markdown and then rebuild the site so to see the changes; problem is, if while you are writing a post you want to save the draft and quickly preview the post, you can’t. You need to rebuild the site again. This slow process started to be very annoying even though I don’t have many posts yet on this site – I can’t imagine how long it would take to rebuild a site with a lot more content!
Writing new content
The second downside with running a site generated by Jekyll is that I’d be forced to write new content from home or anyway from a computer with both a copy of the code and the ‘tools’ required to rebuild and publish the updated site. With WordPress, I can write new content from anywhere. It’s nice to be able to fire up a browser in a cafe, or wherever, and edit new content when you have some good ideas.
I have also changed my mind about the editor; at the time, for some reason I didn’t like much to write posts with WordPress’ built in editor; but with Jekyll, I eventually got tired of how I had to manually manage images, copy metadata from an existing post to a new post, then change that metadata, write the post, rebuild the site. It was a lot of work, really. With WordPress, the editing experience is so easy and I actually like the editor now while I am writing this post. And you can even use some apps to write content if you are not happy with the built in editor.
Another thing that with Jekyll you need to take care of entirely on your own is search engine optimisation, while WordPress and many themes available for it are well designed from a SEO point of view already out of the box -but still, there are also valid plugins that can help further improve the SEO performance of the site.
WordPress’ ecosystem of themes and plugins is amazing, you really can find anything you need (although themes and plugins are often source of security concerns…as well). The same isn’t true for Jekyll. In most cases you don’t need to write any code, thanks to plugins but also thanks to many themes that automate a lot of stuff with great flexibility.
Genesis and other frameworks
For this site I am using the Genesis framework, and I have also used Thesis in the past. These premium themes are amazing and allow for quick customisation and changes to layouts and more, without having to write any code. With Jekyll, making changes to the layout or things like that mean making changes to the code and rebuilding the site, then deploying again.
With Jekyll I had a super fast, completely static website; it’s hard to beat that. However there are valid caching plugins which, if well configured, can help speed up WordPress quite a bit, so at the end of the day it is not a so big deal as it may appear. Security is another aspect that can be a well known problem with WordPress; however with some good sense and useful plugins and services (both free and paid), it is at least possible to harden WordPress against common attacks. Having said that, I have to admit that I would sleep better at night with a static site generated by Jekyll than with a PHP based CMS like WordPress. But hey, you can’t have everything -I hope I won’t be regretting these words :)
At the end of the day, Jekyll is still a young project and I will surely keep an eye on it, but for now I am happy to be back on WordPress. Content is the most important thing, and whatever makes writing content easier gets my vote; at the moment, it is WordPress.