Chris McMichael

Blogging better with Jekyll

Over the summer one of my fellow software engineers approached me bragging about how his Blogging platform was way better than the one I was using and making claims that I should should switch. If my Blog were converted, it must happen in a single day and must preserve existing functionality. So we spent a single day doing just that. Surprise! The following day I was proud to say that I was up and running on Jekyll! Those of you who aren’t familiar with Jekyll let me share with you a high-level overview.

What is Jekyll?

Jekyll is the name given to a Ruby framework. For those of you non-software nerds, Ruby is a programming language and Jekyll is a framework which is used to generate websites. I like to think of Jekyll is a compiler; similar to a tool that engineers may use to develop mobile or desktop applications. However, instead of generating a binary files, Jekyll generates static HTML files.

Writing & Maintaining

The main advantage, in my opinion, is how blog posts are written and maintained. Posts are maintained in a single text file without the clutter of inline HTML and other template logic which tends to get in the way of the actual writings. Blog posts become much easier to maintain since a simple text editor such as SublimeText is all that is need. Other frameworks such as Rails or Django may require the installation of libraries, databases, and caching services which are overkill for something as simple as a Blog. Below is a simple example of how a typical blog post might like look like.

Site (Re)Design

Jekyll offers an easy way to update the design of your blog. There are plenty of websites these days which offer beautifully designed layouts which provide easy integrations into an existing blog. Checkout out: html5up. If you have some extra cash lying around head over to Pixelarity for a wider selection of beautiful layouts!


Jekyll comes with quite a few handy features but sometimes you may find that you need something more than Jekyll can provide. Luckily, Jekyll can be extended through plug-ins! During the conversion process, my blog required a plug-In called Jekyll-gallery, which takes care of image thumbnails as well as the presentation of the actual images in the gallery.

I actually spent some time modifying this plug-in in order to match the same functionality that I currently have. Instead of pointing to an image directly, I modified plug-in code to create an individual page for displaying an image. Instead of this:


I modified the code to do this:


Ok, what’s so special about that? It basically preserves my current functionality but also provided a better way to navigate through my gallery. Hitting back buttons on a browser or using a bloated JavaScript gallery framework was not something I wanted to deal with. My custom plug-in can be found here: Github-Gist.


Since Jekyll removes the need for server side processing. This may pose as a problem if simple form processing. In my case, my contact form. But wait… my contact form appears to working. Yes, and it was implemented using nodejs. Don’t let looks fool you! If hosting you own blog and are in need of a simple contact form, take a look at this node-mailme-maybe. Otherwise, there are a few services which will handle contact form submission but requires JavaScript to publish the form.


If you choose to host your own blog, the only service you need to worry about installing is a webserver such as Nginx. For non-techies Github offers a free service for hosting your website called: Pages. There are a few things a non-techie will need to know but if you can follow a few simple directions you will be up and running running quickly. Don’t forget to checkout the following article as well: Using Jekyll with Pages. If you don’t have the time or would rather someone help you, I recommend: AppRabbit Studios. We would love to help!


I’m happy with the new solution. Thanks Mark! I converted my blog to something that was way easier to install and way easier to maintain. I’m hoping that this will inspire me to write more.