However, the PyBlosxom community is pretty small, so when I needed a new feature or improvement, I often ended up doing it myself. I didn’t usually mind, but I’m not a web developer, so I gradually lost patience and interest in hacking on a web framework.
The final straw was server load. PyBlosxom’s caching is good, but not great, so when my site saw a traffic spike, the server’s CPU load would spike too. My hosting provider is great, but they still noticed, and it occasionally made them unhappy enough that they’d clobber my PyBlosxom CGI script.
So, with a heavy heart, I started looking around for an alternative. I wanted
something mature, with a large community, so I could expect bug fixes and new
features without implementing them myself. I also wanted something that
supported the workflow I’ve gotten used to: write posts with
Markdown in plain text files,
store them along with images and static files in
Subversion, publish them via command line to a
local server that mirrors the live server, test and iterate there, and finally
push them live via
svn up and other command line tools over ssh.
After some research, I finally settled on WordPress. I was reluctant at first, since it’s backed by a database, and I really didn’t want to be a DBA. However, WordPress’s stability, maturity, strong community, and wealth of plugins and themes eventually won me over. (Not to mention that a small WordPress database is way easier to manage than a sharded transaction processing backend.)
I’m still working out the kinks, and I’ll miss PyBlosxom, but so far I’m happy with the move. You may not notice much of a difference, apart from faster page loads due to static file based caching, but at least it’s less likely to get shut off now.
Here are some of the tools, scripts, and patches I wrote during the migration:
- snarfed WordPress theme
- extract compacted PyBlosxom comments
- Thematic patches: per-comment hooks and a comment-meta filter
- Usability patches to Shutter Reloaded and NextGEN Gallery
- WXR importer comment tag bug fix patch