by Richard Kolkovich
I recently attempted to write a post about my first time cooking with truffles. I was able to upload two of the images to my Wordpress installation. After that, however, nothing would successfully upload.
Being a geek and, more importantly, a software developer, I dove into my server logs to try to find the problem. I enabled debugging in Wordpress; I upped Lighttpd’s logging verbosity. Neither of these yielded anything remotely close to an error.
Now, I’ve never been a big fan of Wordpress. It tends to work, and it allows people who would otherwise not have a website to create one (the merits of this are dubious). But it’s relatively magical, completely dynamic, and written in PHP. Jeff Atwood has explored The PHP Singularity previously, so suffice to say that I have a visceral reaction to PHP. Compound this with the fact that I have to fight Wordpress to be able to publish with tools that I like (markdown and vim), and it didn’t take me long to start shopping for a new solution.
I have previously used MovableType as a blog platform. As far as I’m concerned, the differences between MovableType and Wordpress are purely cosmetic, save one thing: MovableType publishes static content. This can be done in Wordpress, but it is the default behaviour in MovableType. This behavior makes a ton of sense for a typical website, as the content on most sites does not change frequently. Even a frequently-updated news site could benefit from this method, as serving static HTML is less resource-intensive than generating said HTML for each request.
With the static page concept in mind, I was initially leaning toward rolling my own site (again). It would be trivial to create a template and use server-side includes to make new posts simple. But I (smartly) decided to see what else was out there before starting down this path. I came across Jekyll and was intrigued. It had all the pieces I wanted: markdown was a first-class citizen, published pages were static, the entire site can live in git, and, as a bonus, it follows fairly well the UNIX philosophy by chaining several programs together to process various markup languages (markdown, LaTeX, etc.).
While setting up my site’s skeleton in Jekyll, I had designs in my head for various scripts I would need: new draft, publish draft, publish site. I was also going to have to roll the templates and CSS by hand. I stumbled upon JekyllBootstrap and, finally, ruhoh. Ruhoh provides a more refined framework than Jekyll, making it a snap to get started. I spent some time modifying the Twitter Bootstrap-based theme to include a color palette of my liking and incorporate a very minimal design, inspired by zen habits.
I’m very happy with the new design and layout, and the barrier between me and a post is now extremely low. I consciously left comments out of my design criteria. In my experience, comments rarely add value worthy of their overhead (server resources, SPAM mitigation, trolling). I’ve instead included social network links with each post to enable discussion on another medium, increasing the bar enough to hopefully increase the quality.