I’d fallen in and out of love with WordPress years ago. Undoubtedly, it revolutionised the process of keeping (and more importantly, actually maintaining) a blog and expanded to serve as a reasonable stand-in as a simple few-page website for the lazy and design-illiterate, too.
I switched to running my own WordPress installation after finding myself frustrated at the lack of tools offered by early-00s Blogger. Yet over time, as development rapidly continued, WordPress acquired piles of features to cater to every girl and her cat. I felt like it had lost sight of just being a great blogging platform. WordPress was doing too much, it had become a bloated machine that did far more than I needed to just keep a blog. Perhaps worst of all, its popularity (and codebase) had made it an excellent attack vector for script-kiddies and true black-hats alike. It was time to find something else to play with.
A common question that surfaces from time to time on various mediums I frequent is “What blog should I use?”. I don’t think there is a real right answer (certainly not for the general case) and to an extent I think one might as well be asking “What colour is the bike shed?”. But the answer I would typically settle on to sum up my past experiences was:
“Anything but wordpress.”
My last use of WordPress was ended rather abruptly1 when the RAID controller for my first VPS malfunctioned catastrophically and I lost everything2. Setting up my first unmanaged VPS prompted me to re-think my options. By this point, I’d settled for a manually curated static personal site. I’d also truly fallen for Python and any web applications I needed to write were atop of the Django framework3. For the longest time I got away without even having to install PHP.
During my first year of university, I enjoyed Posterous, until it closed down and I dabbled in one platform after another. For longer than I should have, I used tumblr. Mainly to keep track of my undergraduate thesis progress and even the humble beginnings of my PhD research, I liked its simple user interface and concept of different “post types” but in the end, it unsurprisingly fell very short of the functionality needed to communicate both academic and technical writing.
It is an incredible resource for reaction GIFs, though.
In the market for something new, a friend of mine suggested I try out Jekyll: a generator that effortlessly transforms Markdown into a static website.The best part? GitHub can generate and serve these websites for you, for free.
With a little bit of fiddling, I was up and running with what is probably the best looking blog I’ve ever attached my name to. More impressively, with hardly any configuration, I had syntax highlighting, fancy tables and footnotes too.
This set-up has served me well since January. After the initial faff of templating and the usual battle of wills against CSS, the authoring and maintenance process has been frictionless. One just commits a Markdown post and GitHub takes care of the rest.
But the novelty of simplicity has begun to wear off and I’ve found myself wanting additional functionality. I want categories and tagging back. But it’s not that Jekyll can’t do this, arbitrary Jekyll plugins cannot be executed with GitHub’s Pages platform4. Sure, I could install Ruby, mess around with gems and generate my own Jekyll powered blog5, but most of the attraction to this set-up was the no-installation-necessary, and the automation.
A longing for categorisation was not my only problem. I also despised writing tables in Markdown, and my media-embedding workflow left a lot to be desired; having to commit the image to Git (often from another device) and manually craft the URL for the image tag in the Markdown text. I also missed captions, comments (which I did acheive, by embedding Disqus), and search.
Speaking of search, I also found my personal website performing less well in searches for my name and relevant descriptors after pointing it directly at the GitHub pages hosted blog with a CNAME. I’m yet to come to a satisfactory conclusion on why this is the case but suspect it is one of:
- Index entries existed both for
samnicholls.netand I had not remembered to use Webmaster Tools6 to “move” indexes from the former to the latter.
- Confusion caused by suddenly setting
samstudio8.github.io‘s CNAME to
samnicholls.netprevented indexing of one or both domains. Indeed, for some time afterward, dead results to documents hosted on the previous static website plagued rankings and very new blog posts failed to appear without manual submission for indexing.
- My Google-fu SEO-speak was just plain weaker on my no-frills Jekyll template, causing either a loss in score for keywords such as my name, or reducing the index frequency of the site, which would explain the lack of new posts populating results.
And so, it appeared that once again I was on the market for a new blog platform.
Recently, my partner wished to move from her
wordpress.com hosted blog to something she had more control over. After brief consideration of available options it seemed sensible to “stick with what we know”, primarily as importing WordPress to WordPress was a mostly trivial endeavour that could be accomplished via a plugin, which was especially useful given the number of embedded photos and videos.
The blog in question appears well indexed and has gained popularity for specific niche queries, such as tourists in Spain looking for where to swim near Torrevieja. It even turns a tiny AdSense profit.
Clearly jealous, as my blog was not even able to rank for a word that I invented without intervention, I’ve come full circle, betrayed my vow to never use WordPress again and am trying it out for myself, once more.
Welcome back, WordPress.
- Through no fault of its own, I should add. ↩
- It was around this time that I learned a tough lesson about backups: <Don’t trust anyone else to do them for you. ↩
- One of the few projects I can’t help but fanboy over. ↩
- An obviously sensible choice by GitHub that I’m not sore about. ↩
- Which I had actually done in the past to make a static site for the short lived OAOSIDL project. ↩
- Apparently now called Search Console ↩