Migrating from Web Hosting + Wordpress to ... Free! (Jekyll + Heroku + Google)


As some of my regular readers may have noticed I have moved my blog to using Octopress. How this happened was a bit of an accident that emerged from a yak shave this weekend. I had been wanting to get a VPS solution where I could use tmux and vim to host remote programming tasks.1

I had been kicking around the idea of getting off of my Wordpress blog and moving to a site whose content was statically generated (like Jekyll). The advantage of using dynamically-generated static sites is that they are not subject to cratering under heavy load thanks to no dependence on a database. Further since the static content doesn’t change a front-side cache will help you scale to thousands of hits. While my analytics tell me that’s not likely to be an issue, I like the robustness of the solution.

Further the publishing mechanism becomes one of a programmer’s favorite tools: git. You write in vim in Markdown, you generate, you commit, you push. This is very elegant and very fast.

I followed the Octopress installation instructions and thanks to it and exitwp I was able to get my Wordpress content out of a MySQL database and exported into Markdown files about an hour. After another hour formatting things and setting up the image assets directory pathing I was able to fire up a local instance of the blog and check things out.

I thought that was pretty neat. But wait there’s more!

The guide had a page on how to push the blog to Heroku. Heroku is a site which provides hosting for applications and which can grow resources for your application on the fly. For small applications there is no charge and my blog definitely qualifies as a small-time operation.

With a few mintues’ work my blog was available in a tmux session called ‘blogging’ on my VPS, was “draft-mode” viewable in my browser, and could “publish” to a solution that could horizontally scale in the (unlikely) case that my post should become massively popular.

Then it struck me: “Why am I paying for anyone to host my blog anymore?” I realized the only thing holding me to traditional hosting was email. For insitutions (or individuals) numbering fewer than 5, Google Apps will host your email and give you “private” GMail, Google Calendar, etc. It took about 10 minutes to get signed up.

With a few changes to DNS was pointing to my Heroku instance and my mail was be handled by Google. I had moved from needing to pay $15.00 for Wordpress and email hosting to having both of those handled more scalably for free.

Now I give that $15 to Linode and get the horsepower of my own private unix server in the cloud and a programmer-friendly blogging solution built on some of my favorite tools.

I plan to consolidate other domains onto my VPS, but to suffice it to say I’m very happy with Linode, very happy with Heroku, and very happy with Ruby / Rack-based web architectures.2 It’s not a configuration that would work well for everyone, but for me it’s the bee’s knees.


  1. That is, I want to be able to log into a remote machine from just about any environment possible (via iPad + keyboard over 3G, via laptop from the office, from a friend’s computer) to SSH to a cloud-based Linux host which can persistently store tmux sessions in which I do development. In short I want to have my laptop be a portal to a workhorse machine.