For several years now, I've used Wordpress to power this site. As I've learned to use new tools for coding (vim, git and so on), Wordpress has started to seem a little too heavy, especially for just writing posts. A
textarea editor just can't cut it when you've been using vim for a couple of years.
So I started looking for alternative blogging engines. After trying out a few Rails-powered engines, I eventually stumbled across Jekyll.
Jekyll is described as a "blog-aware static site generator", and I set about giving it a try. After a few minutes, I knew that Jekyll was what I'd been looking for. It lets me edit my site in a text editor of my choosing, generates static HTML files (no more heavy server-side tech), and sits perfectly in a Rails-esque
git push; rake deploy workflow.
So after a few days migrating from Wordpress, this site is now 100% Jekyll powered: there is no back-end PHP; no database connection to worry about; and everything is versioned and backed-up through git. I've used a fork of Jekyll that lets me write templates in Haml rather than stock HTML.
There have been a few bumps along the way, but thanks to the growing Jekyll community and wiki, there are plenty of helpful guides and tricks available to solve any problems I've had. Here's a quick overview of how I've switched to Jekyll.
Jekyll uses plain text for everything. Plain text is great - it's small and portable; can be edited using your editor of choice, and is easily versionable using tools like git.
With a suitable Rakefile, managing my site is as simple as writing a post and running
rake deploy. Rather that git post-commit hooks, I've used rsync (as described in this post) to push files into my server's blog directory.
Having no server-side scripting means that Jekyll sites have no way to submit and process comments. The Jekyll sites I've seen either don't use comments, or implement them through a hosted service such as Disqus or IntenseDebate.
I like the conversation that comments bring, so I went with Disqus to manage this site's comments. The process was fairly simple, and just involved adding a couple of