For the longest time, I’ve been a fan of static HTML pages for blogging. No databases to run, no pesky interpreter to worry about and for the most part, not too many security vulnerabilities to worry about (hey, it’s static!).
This lead to my switch to Blogger sometime ago. I used it to FTP a bunch of static HTML files to my web server. To be clear, Blogger is still a great platform and I would be still be using it if it weren’t for a few pesky things.
First, for whatever reason, Google just hasn’t done much with Blogger for a long time. As someone who works in a large company, this is usually signs of a product on life support. This makes me a bit uncomfortable.
Second, I’ve long wanted complete control over my blogging data and platform. For example, Blogger has limited template capabilities. Also, if Blogger goes down, I still want to be able to post stuff to my blog.
And third, as a geek, I got that itch. The one that shows up every once in a while when you want to muck and redo some system.
So what did I move to? Here’s my workflow now.
Workflow
Markdown/Textile for posts
I now compose all my posts in textile or markdown. I went through a painful process of importing my blogger posts into a format that most textile parsers don’t choke on.
Jekyll/Github for publishing
The key to this piece is Jekyll. This is a wonderful little Ruby gem which takes a bunch of posts, templates, mixes in Liquid, a home-grown templating system and generates static HTML out of it. Jekyll was done by the people behind Github and they actually have a feature where you can publish from a Github repository directly to a subdomain. I’m a bit wary of moving to Github entirely but I still use it as a backup of my blog data.
Running Jekyll on the local copy of my repository generates all the static HTML for my site ready to go. I have a few custom layouts which generates the home page, the code page, the archives and pretty much everything else you see here.
Lighttpd/rsync
After that, it is a simple matter of copying those files over to my webserver. Lighttpd is my webserver of choice but I occasionally switch to nginx and Apache as well. I should move to rsync soon for copying stuff between my local machines and the server.
Disqus for comments
I strongly considered not having comments on the site. I’m still not convinced I need them and might remove them someday. But given that I wanted them and didn’t feel like writing some home-grown script, Disqus seemed like a great choice. Their UI is slick and neat, they have all the basic features I want and they seem to know what they’re doing. Of course, I still don’t like someone else having my comment data but I better them than Google :-).
Downsides
Losing comments
This is the biggest bummer for me. I couldn’t find an easy way to import comments from my Blogger export feed into Disqus. In general, Blogger’s export format seems horrible to work with and no one seems to have good tools for it. I need to get around to hacking this someday but for now, I don’t have the old comments on this blog.
Needing tools installed
One of the best things about Blogger was the ability to post from any machine. Now, I need access to one of my machines which has Jekyll installed. Not as lightweight as I would like. I also lose the ability to compose with Windows Live Writer and auto-post images (which is a huge time saver).
Republishing feed
Unfortunately, I had to change my feed in a way which makes it show up as all new items in your feed reader. Hopefully, I would only have to do this once