I mentioned in my last post that this site is thrown together using Jekyll. I want to take a minute and explain what Jekyll is and how I'm using it. Basically, Jekyll is a static site generator. It takes files with Jekyll-flavored markup, processes them, and spits out static HTML files. I like to think of it as server-side code that gets pre-compiled once, then served out statically when requested by a visitor.

I'm using it because I decided to host this site on GitHub Pages, which only gives us the ability to serve static files. The feature that makes Jekyll really cool for me is that it's blog-aware. You create template(s), write and save your posts in a definitive format, then run everything through Jekyll. The result is a set of files formatted howevery you like, with everything automatically glued together. Throw the files on a hosted platform and you've got a blog.

There are obvious advantages to using Jekyll, including the site runs super-fast because there's no run-time processing going on. Plus, since the files are all static, your server can cache them with relative ease. Another advantage is being able to host a semi-dynamic site where no server-side processing can take place. However, this means giving up many dynamic-powered features such as real-time data IO. One way to get around this is using JavaScript, but that's a topic for another post.

If you want more information on Jekyll, check out the official site, the GitHub repository, and the documentation.