Why I Decided To Use Jekyll
For too long I have procrastinated creating a personal hub for my writing. Well technically, I do have a working website built using Wordpress, but in my opinion, the authoring experience is dreadful, and as a result I have not posted a single piece of content in nearly two years. The WSYWIG editor, while offering large control over formatting, produces sloppy HTML that doesn’t quite sit right with my OCD. The requirement of internet access, or in its place, a local installation of Wordpress, is another layer of complexity that I find unnecessary for the simple task of publishing my thoughts.
This blog post is in no way constructed with the intent to bash Wordpress. Wordpress is an impressive tool. It brings to the table an easy installation process, support from all major hosting vendors, a vast library of plugins, and a thriving community. I can however confidently say, it is not the right tool for this particular job. I have very basic needs. I need a place to write and share my thoughts, nothing more. As Markdown is a very natural format for writing structured content, I began my quest by narrowing down various blogging platforms that natively supported it.
The documentation pointed to a Vagrantfile created by the Ghost team. Vagrant was a tool I used daily at work, and learning that it was the recommended method for creating Ghost's development environment, only made me more confident in my choice. If you do not have experience with Vagrant, I highly recommend that you take a look.
$ git clone email@example.com:TryGhost/Ghost-Vagrant.git $ vagrant provision $ vagrant ssh $ cd code/Ghost $ npm install $ grunt init $ npm start
Easy right? Unfortunately, no. This post would be written in different light had it been so. Running Mavericks OSX with the latest version of both Vagrant and VBox installed, I was unable correctly provision a working environment. I would resolve one complication only to see another arise. It began with issues regarding Vbox Manage; next was Guest Box Additions; and finally npm module permissions. I had sacrificed close to two and half hours, before making the decision to move on. The complexity of managing Ghost, both locally and in production, proved to be more complex than I was willing to deal with.
Static Site Generators
My familiarity with the platform, comes from hosting documentation for several of the opensource libraries I maintain. Due to integration with Github, Jekyll has gained widespread developer adoption. This benefits not only the template ecosystem, but also the tooling around the product. As an example, Prose.io is an opensource web content editor for Github. It provides solid integration with Jekyll, and a result, I have a functioning mobile interface to edit and write content.
After searching for a viable template, I was only left with the following.
$ git clone firstname.lastname@example.org:rosario/kasper.git $ cd casper $ gem install jekyll $ jekyll serve --watch
A few css tweaks later, and I have a blog I am happy to call my own.
Special thanks to rosario for porting over the default Ghost theme Casper.