This is the first of a series of posts about Jekyll; what it is, and how it’s used to build websites. This site uses Jekyll along with Octopress 3.0. More about that in a future post.

So, what is Jekyll?

In simplest terms, Jekyll is a website generator. It takes a template directory containing raw text files in various formats, such as Markdown (or Textile), or HTML, and runs those files through converters, then generates a static HTML website that can be hosted on a web server.

Jekyll is also the engine behind GitHub Pages which is probably Jekyll’s easiest to use hosting solution. With it you can simply upload your Jekyll blog to a free GitHub repository and have it automatically compiled and deployed each time you commit. This blog site is hosted on GitHub Pages, for free.

Why would you use Jekyll?

One of the main reasons to use Jekyll is its simplicity. The goal of Jekyll was to eliminate the complexity of other blogging platforms by creating a workflow that allows you to ‘blog like a hacker.’ Other platforms like Wordpress or Drupal, rely on server-side processors such as PHP. The pages containing your content are built on the fly; database queries are run to get the different pieces, such as the title, content, or permalink. Then each page is available to be displayed in the browser. This, of course, works quite well in many situations but for a simple blog site, there’s a lot of complexity and overhead. You need the server-side platform installed and running on a capable server.

Blog like a hacker.

Tom Preston-Werner

With Jekyll this is all done on your computer, before the files go up to the server. It reads the local configurations and templates, then builds all of that HTML, CSS, and JavaScript right on your local machine, so your server doesn’t have to. This makes your server administration much easier, safer and faster.

Pros

  • Jekyll doesn’t require any database, unlike Wordpress or other content management systems (CMS). Pages and Posts are converted to static HTML prior to being uploaded to your site.
  • Jekyll is fast because, being stripped down and without a database, you’re just serving up static pages
  • Your Jekyll website doesn’t include any functionality or features that you aren’t using.
  • Jekyll is secure because vulnerabilities that affect platforms like WordPress don’t exist as Jekyll has no CMS, database or PHP.

Cons

  • As a ‘bloging platform for hackers,’ Jekyll is aimed at people who don’t mind installing the required dependencies, working from the command line, or doing a little coding.
  • In most Jekyll configurations everything is done on your local computer. There are many dependencies to install and you can’t blog from just any device such as your phone.
  • Jekyll doesn’t work very well for multi-author sites and has no functionality for visitors to login to your site.

In future posts I’ll discuss Jekyll in greater detail and show some example sites.