Living on the Edge

10 May 2012

I’ve been using Wordpress since 2004. In those day’s Matt Mullenweg would announce new Wordpress sites he found on his blog (now there are over 70 million he doesn’t do that anymore).

Since then, my blog has moved across various domains, and across various platforms, but in 2009 I switched back to an installation of Wordpress running on Dreamhost’s shared hosting. About a year ago it started getting into serious trouble, being hacked to show dodgy pharmaceutical content to Google (at one point removing me entirely from Google’s index), and more recently with some persistent XSS which redirected visitors to other unsavoury endpoints.

I don’t really know how any of these came about, or whether they were due to vulnerabilities in Wordpress, Dreamhost, or me (via some social means)—and I don't have the motivation to try and find out. I spent some time manually trying to remove injected code from PHP files, but I was never fixing the underlying vulnerability so these things always came back, and I got fed up of it. A few weekends ago I thought I’d try the next thing.

I’ve always liked the idea of storing all my content in HTML. If there’s one format I’m willing to bet longer term on it’s HTML. And it’s easy to work with. No setting up databases, no setting up libraries to read from databases, no exporting/importing, or converting between formats.

As an added bonus, if everything is stored in plain HTML, you can just throw it on a disk on a computer somewhere, stick an HTTP server in front of it, and you’re more or less good to go. You don’t get much simpler than that when it comes to a production environment.

So that’s what I’m doing. I’m creating static files for every blog post on the site, and I’m using Jekyll running on my laptop to inject common elements in to them, create the archive pages, etc… I then push them to S3, which is used as the origin for two Cloudfront distributions, one for and another for

This means every page of my blog is served by Amazon’s CDN. This is massive overkill, but fun—and actually so far a bit cheaper than any shared hosting I’ve used.