Octopress Review

Octopress is a relatively new blogging platform that’s built on top of Jekyll, a static site generator. Jekyll out-of-the-box is super barebones… and for blogging, the only thing it does is to turn: 2012-01-21-octopress-review.markdown into /2012/01/21/octopress-review/. Nevertheless, I have been using Jekyll since the beginning.

Jekyll’s extensibility has let a plethora of plugins to provide just the functionality that you need. Octopress takes this to an extreme and provides an entire blogging framework, with a default theme and pre-installed plugins. The theme uses semantically correct HTML5 and SASS is used for CSS generation.

What I like

The built-in Octopress theme is clean and usable, letting you focus on content instead of design. It supports Github pages, S3, S/FTP via rsync… etc. There’s a sidebar with recent posts, and sidebar plugins for social media. Type in your Google Analytics and Disqus credentials in a YAML file and Octopress generates the embedding code for you.

The code display integration is great… it uses the pygments.rb gem, a Ruby version of the originally-Python syntax colorizer. You can inline code, or include whole files. The generated code looks great.

Octopress comes with a Rakefile that provides some sorely needed tasks. The first thing I did for my Jekyll install was to write a rake task that given “Octopress Review” as input, generated 2012-01-21-octopress-review.markdown in my _posts directory. I also wrote a task to rsync the generated files to my server. Octopress comes with these by default.

Finally, Octopress decomposes very well and looks good on big screens:

and small screens too:

What I don’t like:

The git commit log. The way you install Octopress is by cloning the repository that has the blog framework. This facilitates updates, but results in the mixing of user commits with the commits of the Octopress platform itself. Also, the Octopress master branch has a pretty messy tree from what I’ve seen so far, which makes the commit history look even worse on sites like Bitbucket and Github. If you’re going to ship code that intermingles platform commits with user commits, please consider keeping a clean tree for platform commits.

It’s harder to customize for control freaks like me. Editing the template HTML might break updates that come down the line. They recently put in a custom folder for user defined stuff, but this is a small subset of the overall theme and IMO makes the template structure even more convoluted.

Final Notes

I started migrating my posts from plain Jekyll to Octopress, but gave up halfway. I realized it was easier to just install the Jekyll plugins into my existing setup. I do like how the sidebar goes to the bottom of the page if you narrow down the page width, so I’ll implement that on my end.

I would recommend programmers to blog with Octopress if they’re currently using Wordpress, or don’t have a blog yet.

Verdict: 8/10

Posted on