While researching my article on Healthcare.gov, I had the chance to dig deeper into the open source technology behind the site.
I tested Jekyll, which created most of the pages for the Healthcare.gov site.
Jekyll creates "flat sites" that don't use a database.
In theory, database-free sites should be easier to use. Without a database there's less to set-up and less to manage.
In practice, is it really easier to use Jekyll than a database-driven software such as Joomla, Drupal or WordPress? Read on and find out.
What is Jekyll?
What does a Jekyll site look like? It can be as simple as this:
The whole site is built around that _config.yml. It's similar to Drupal's settings.php, Joomla's configuration.php and WordPress' wp-config.php. Everything from permalinks to the site title are placed in that _config.yml file.
Because there's no database, all of the content is also stored in files. Inside the /_posts/ folder. Your content is strored inside markdown files with the .md file type. You can write this files at a different location and publish the posts by simply uploading the file.
Here's what a simple post looks like:
Here's a more complex example taken from Healthcare.gov:
How simple was Jekyll to use?
For me at least, getting started with Jekyll was not easy.
I tried to install Jekyll on my Mac which runs Mountain Lion. All told, it probably took me a day of effort to produce a broken site on my computer.
The first problem was the lack of clear documentation.
The whole Jekyll site is than 40 pages in size and the documentation was too short to be useful: http://jekyllrb.com/docs/home/
There are no books on Jekyll. The best I could find was a $15 and 55 page e-book by Andrew Munsell.
Andrew does also have one of the best tutorials I could find online, "Learning Jekyll By Example". That was about the only clearly explained set-up guide that I could find.
However, that tutorial still left me short of a finished website. To get a (broken) Jekyll website live, I relied on downloading the source files from this Nettuts tutorial. Even that site mainly consisted of broken pages.
Part of the difficultly with Jekyll is that there are at least 4 skills you need to learn first, before you can tackle Jekyll:
- Using the command line
- Installing Ruby
- Installing RubyGems
- Using a package manger such as http://bundler.io
I admit to having a mediocre command of all four, so that put me behind the curve with Jekyll. My job is figure out how things work and explain them to people, but I'd need a lot more time to wrap my head around Jekyll.
If the technology stack was complicated, I did really enjoy the editing. The Healthcare.gov team used Prose.io to write content.
If you visit Prose.io and authorize it to use your Github profile, you'll be able to browse your Github project using the Prose.io editor.