I’ve been lazily running this blog since 2013, though for long stretches I’d find time to post only every few months. Initially I published with a minimal blogging engine I’d written myself in Ruby on Rails. At some point I came across Tom Preston-Werner’s article Blog Like a Hacker in which outlines the many raisons d’être for his static site generator, Jekyll. The thrust of it all is that the tools we use for managing code, such as the Git version control system, are actually uncannily suited to prose writing as well. In fact adopting a programming-like workflow and tooling for your blog alleviates some very real pains that you’ll experience if you use a more ordinary CMS like WordPress.
If you haven’t the energy to read the whole article and are wondering what Jekyll is, it is a command line tool for generating static sites. The tool comprises a development server and a compiler. You write posts in markdown or plain html and Jekyll, in its default configuration, will build everything into a nicely structured site with a paginated index page plus all of your posts rendered in a common layout. If you are using Github Pages, your site is magically built and published every time you push to a designated repository.
Perhaps the biggest wins with Jekyll are that you never have to worry about forgetting to run backups or do CMS maintenance (such as WordPress security updates). As long as the repo exists somewhere your work will not be obliterated beyond recovery (and given that Git is distributed version control, you will likely always have at least a copy in a remote repository and a local copy). I have absentmindedly let shared hosting accounts lapse in the past only to remember months later that I’d had some ancillary blog for some project on them, now gone forever. Another big win is that you can host your blog basically up to infinite scale for free with Github Pages.
I ran my blog with Jekyll and Github Pages until just a couple of months ago. It is now on WordPress.
Within its main demographic of programmers, I believe that far more people are abandoning WordPress in favor of Jekyll than abandoning Jekyll in favor of WordPress. Why would I move to WordPress?
Fundamentally, it is this: if I wanted my blog to eternally be a basic personal journal, largely devoid of media or community, devoid of tutorials, devoid of any ambition to retain contact with the people who drop by, I would likely have kept it on Jekyll. Anybody who has done any amount of WordPress plugin or theme development knows that there is a lot of ad-hoc chaos and sprawl under the hood. On top of that I don’t love that I am now responsible for running backups and doing periodic maintenance of this install, which sits atop a crusty, secondary dedicated server of mine.
What WordPress offers, however, if you can endure its pains, is a seemingly boundless ecosystem of valuable creative, discovery, and engagement tools. I am talking about things like YARPP and Yoast SEO for boosting post engagement and SEO value, respectively. For sharing code snippets in posts, it is wonderful to be able to drop in things like SyntaxHighlighter Evolved and Crayon Syntax Highlighter. For photo sharing, it is great to have NextGEN Gallery. And of course the many mailing list tools and integrations (such as the simple yet functional Sendy Widget I use). Furthermore if you wish to have any sort of role-based delegation in your editorial workflow or invite guests to post pieces on your blog, only WordPress will accommodate you.
Don’t mistake me, there is a lot that is unpleasant about WordPress. Ultimately though, my deduction from working in depth with both tools, is that Jekyll is extremely comfortable in its workflows and well-suited to the introvert programmer who wants a clean, professional, fast and largely maintenance-free personal blog. For the extroverts who prioritize being read widely and engaging the most people, even if it means a busier and less-dignified site aesthetic and a bit more maintenance work, I believe WordPress is the better fit.