I’ve received a couple of questions about how my new site is built. (If you want to hit “next” now, feel free!)
I used to have a Wordpress site. I maintain several sites for other people using WP, including my wife, so I’ve become fairly knowledgeable about it, though certainly not a guru. If you need a blog, a simple CMS, or a combination of the two, you can certainly do a lot worse.
For my personal site, though, here’s the thing. Well, two things.
First, Wordpress does way more than I want. I don’t want a dashboard showing me posts from other peoples’ blogs. I don’t want a categorized linkroll, or a custom taxonomy system, or a comment system (Disqus works great). In fact, I don’t even want the ability to edit posts in the browser. I want a minimal site where every feature is there because I see a need for it, and the workflow is designed around the way I like to work.
Second—and yes, this is a cliché—the thing is written in PHP. Not even the new-fangled PHP where they’ve layered objects and stuff onto the old-fangled one, but good old function-based code-in-the-template PHP. Every time I want to open the hood and customize or debug something, I am faced with this reality.
So when I decided to revamp my site, I realized that I should just start with nothing and add features until I got what I wanted. I found that other people had this same idea (see Toto, Jekyll, etc.) and took inspiration from them. (Of course, using one of those projects would defeat the purpose!)
The result is about 300 lines of Ruby (with comments), based on Sinatra. No database, just Git. I edit in TextMate, deploy to Heroku, and let Varnish do the heavy lifting.
When I explain this, sometimes people want the code. Well, my code isn’t all that. (To be clear, sometimes my code is all that—just not in this case.) Just do it yourself—it’s not that hard, and you’ll probably learn something.