This article is a quick description of the software stack used to publish this blog.

Octopress

The blog uses the 2.5 branch of the Octopress static blog generator.

I have set up the Octopress repository as a remote called up (upstream), and my 2.5 branch mirrors the matching Octopress branch. This means that I can adopt updates with the following commands.

git checkout 2.5
git pull up 2.5
git checkout master
git rebase 2.5

I followed the official guides for Initial Setup, Configuration, and Blogging. Although they are written for Octopress 2.0, they still apply to 2.5.

Heroku

The blog is deployed on the Heroku platform, and using their generous free tier. I use one dyno and no plugins.

I did not follow the Octopress deployment guide for Heroku, because I did not agree with the approach of checking in the generated static pages.

Instead, I used an Octopress buildpack, which generates the static pages when I push to Heroku's git repository.

This build pack is basically Heroku's official Ruby buildpack, with the Octopress logic borrowed from jgarber's Octopress buildpack. I'm betting that Heroku will update their buildpack much more frequently than I'll have to update the Octopress bits, so I'm using a rebasing workflow for the buildpack.

I followed jgarber's setup guide for the Octopress buildpack, with the exception of the Pygments setup, which is no longer required

Also, since I'm using my own buildpack, the command for setting it up is different from the command in the guide I followed.

heroku config:set BUILDPACK_URL=https://github.com/pwnall/heroku-buildpack-ruby.git#octopress

Discussion

I really like that I have my contents in a portable form (Markdown), so I can migrate to a different blogging system, such as ghost, if I want to.

I don't really like the Octopress theme. I like the styling in ghost and the typography in medium. Octopress won because of its simple setup (Ghost stores images in the filesystem, so it doesn't work well on Heroku), because it's not restrictive (medium requires draft reviewers to log in with Twitter). Good support for code highlighting doesn't hurt.

Given an unlimited amount of time, I would have used the middleman static site generator with its support for blogs and syntax highlighting.