I was considering moving my simple portfolio site at kennyfraser.com to a more streamlined publishing setup. I wanted to get away from hand-coded HTML/CSS files and FTP, and add simple blog functionality.

After hearing good things about Jekyll via CSS-Tricks and seeing how tightly coupled it can be with GitHub Pages, I forged ahead. Ironically, after beginning the installation process, my existing VPS host went down due to a power outage, taking my email forwarding with it. No emails for more than 24 hours. So managed to get a lot done…

Jekyll seems to be the most popular static site generator out there at the moment. Experience of building sites with the content management system Statamic has been very good so far. Statamic needs PHP on the server but the flat file construction looks on the surface pretty similar to Jekyll (which doesn’t require any server scripting).

Installation of Jekyll involved delving into the command line on OS X - I mainly used documentation at Jekyll and Go Rails (with Homebrew). Node.js is also needed.

The advantages pretty quicky made themselves clear:

  • Markdown for writing blog posts and page content - as it should be
  • easily generates a local server at http://localhost:4000/ to preview the entire site, via the command line jekyll serve
  • support for Sass generation of stylesheets
  • code syntax highlighting
  • fast performance and no database overhead

My GitHub command line skills aren’t yet fully formed, so I’m using GitHub Desktop to commit changes to local files then sync them with GitHub Pages. Highlights here are:

  • everything is easily version controllable
  • quick and easy publishing with Sync
  • speedy and reliable hosting

Will I run into limitations later? Probably. But right now things are quick and easy - I like it.

Jekyll static site generator

Eduardo Bouças has written a good comparison of static vs dynamic site generators.

Treehouse has a short workshop on how to Create a Jekyll Site on Github. This assumes that Github is doing the work in generating your site from remote source files, rather than running a local version.