I find most content management systems overwhelming.I am used to hands on coding (and really html is not even that hard that it needs to be abstracted) so working with menus and pre built templates just does not work for me.Which is why when I first learnt about couchApps I was pretty excited.This was the closest thing to the content management systems that I wanted.I quickly created a blog and made it live within days.
While it worked well I was not really satisfied with the experience of couchApps.It felt more like data entry (I had to store key value documents in couchDb) than blogging.To be fair I knew about it when I was learning the technology but at that time I felt that it won’t be much painful.After a few posts however, I found the process really repetitive and time consuming.So I started to research about easier ways to write blogs.Soon I found out about GitHub Pages.
For those of you that don’t know github allows the users / organizations to create a special repository that can serve static html pages.This was exactly what I was looking for.What could be simpler than writing static html pages as blog posts?I was sold instantly.The problems were still the same though.While creating static html pages I would have still have to do a lot of repetitive work.
One way to over come this problem was to use a client side framework like angularJs.However I was not too keen on client side rendering of the templates.I wanted to keep my blog light and snappy.It was at that time I stumbled upon jekyll the docs on github pages alluded to it a couple of times but they never really explained what it was.The documentation on the repository was much more helpful :
Jekyll is a simple, blog aware, static site generator. It takes a template directory (representing the raw form of a website), runs it through Textile or Markdown and Liquid converters, and spits out a complete, static website suitable for serving with Apache or your favorite web server.
Hallelujah.Praise the lord.Basically jekyll allows you to define design templates and then write data(in your favorite language,I use Markdown) to render against that template.It then takes that data and renders a static html page.You need to define the layouts of your page just once and you are all set to create blog.Jekyll can have a bit of a learning curve for the beginners.The people that don’t have a background in programming may find it hard to get started with jekyll (this guide is very helpful though) but I think it is absolutely worth learning.
So how is all this distraction free you ask?Well for one you don’t have to deal with all those choices that most content management systems provide.On the flip side this means that for the inexperienced it might take longer to get started .Jekyll also allows you to have a lot more control over your web pages.It is not the only static website generator, however there are lots of them.So pick the one you like and start blogging like a pro.And have fun while doing it too.