Software engineer, London UK

Hosting on GitHub Pages

Nov 19 2012

When I redesigned this website last year I had one main goal in mind: it had to be flexible. I didn’t want to depend on a platform such as WordPress or have my content tight to a database. Very naturally I decided to use Jekyll.

Jekyll gives you just enough power to generate a static blog from a bunch of markdown files while leaving you completely in control of the structure and layout. Back then, I was a happy customer of Linode so I was able to host the site myself. I was simply building it locally and pushed the content to my server via FTP with Transmit. While this worked quite well, it required me to have my MacBook (with Jekyll and related gems installed) just to be able to publish a post. So I then moved to have the server check out the git repository and set up a post update hook that simply built and published the site. This worked nicely but required more setup on the server that I would need to replicate when changing provider, too much hassle for a simple blog. Also, over the last months I found it harder to justify the $240 per year for a Linode VPS given that I was only hosting my blog on (and a couple of git repositories that could easily be moved to GitHub at any time).

So I made the move, from now on I will be hosting this blog on GitHub. This will make things much easier, the website only being a git repository built when pushing to the master branch. Drafts can be kept in a side branch, building locally for previewing, and merging to master to deploy. This approach has one caveat though, one cannot use a non-vanilla version of Jekyll. In other words, this means no plugins. GitHub runs a basic version of Jekyll and (slightly outdated) Liquid and plugins in the repository will be ignored. I didn’t make an extensive use of plugins but still depended on a couple of them, to classify the posts by date for example. Anyway, nothing insurmountable so I removed the yearly and monthly classification of posts in the archive page and now display them sequentially with their appropriate posting date. I have also slightly simplified the post types. Every post written on this site will be classified under Posts, that’s it! In other words, no more Bits and Starred Posts.

The last little thing was the Contact page. I was using a simple PHP script for the contact form that I obviously won’t be able to run anymore. No big deal, no one likes contact forms and there are plenty of other ways to contact me!

So, let’s just hope that this easier setup works smoothly and stimulates me writing more!

blog comments powered by Disqus