Octopress

Ask any of my friends and they'll tell you that I have a tendency to switch tools as often as I change clothes. This habit extends even to my blog: I switch themes and platforms more often than I actually write articles. I think part of the reason is my dissatisfaction with WordPress; another, the flexibility provided by having a small readership and low switching costs. With that in mind, I'm seriously considering switching to a new blogging system: Octopress.

Octopress is a Ruby on Rails application designed to generate static HTML pages from markdown files for bloggers. It's made for hackers, by hackers; because of this, it has several features that I've found compelling:

  • An abundance of deployment methods.

The system can deploy your blog's files over rsync, Heroku, or GitHub pages; this blog is hosted using the latter. Each of these are interchangeable and easy to switch if the need arises.

  • Open source and easily customizable.

WordPress is a complex beast; even modifying the theme requires changing a bunch of PHP files (and I'm no PHP programmer). Octopress, being based around several technologies which all aim to make things simple, is easier to work with.

  • It's based around files.

The need for a dedicated MySQL database and its use for storing content has proven to be a source of genuine frustration for me when trying to migrate my blog posts -- even between two WordPress installations. Having everything set up to work from plain text files is a significant improvement for me. Also, I can use my favorite editor to work on my blog as easily as on my code.

# Plus, it has pretty awesome support for sharing that code!
def heck():
    print "Yes!"

All in all, it's a much better system for me. Fortunately, there are like-minded hackers out there who've written a tool called exitwp that can be used to migrate from a WordPress site to Jekyll-ready markdown files. A little bit of tweaking here and there, and all of my old content is ready for this site!

If you like what I write, you can subscribe to my mailing list to get new posts in your inbox: