Over the weekend I spent some time converting this blog from Posterous to WordPress.

I found Posterous to be too inflexible for my needs. Simple tasks such as rewarding the top commenters by listing them on the homepage were simply not available. I also disliked their themes, the inability to embed JavaScript snippets, and the lack of an API for posting from a blogging client like Ecto.

Why I moved away from Posterous

In short, I realized that my lack of activity on this blog was mostly motivated by my dislike for Posterous, so I decided to move from it. Coincidentally, the day after I did such a change, Posterous decided that they weren’t so much a blogging platform anymore but rather a… well I’m not sure what they are, I guess a Tumblr/Google+ hybrid of sort. But this blog was never a “Space” as they call them now.

In my upcoming book on blogging for hackers and founders, I mention Posterous, but recommend that people opt for self-hosted options like WordPress, Blogger (if they want a hosted solution), or something like Jekyll/Octopress if they’re feeling adventurous.

As such I decided it was time I took my own advice and move this blog from Posterous to a WordPress instance that I setup on my server.

Migrating from Posterous to WordPress

Theoretically, moving from Posterous to WordPress is fairly straightforward. You install a Posterous importer plugin, do the import, and when you’re done, switch the DNS from Posterous to your own server.

In practice however, this didn’t work. The Posterous plugin for WordPress.org was simply broken when using it with the current version of WordPress (3.2.x), as confirmed by many others who experienced the same issues.

Not wanting to lose the existing permalinks or having to manually, tediously copy over my posts and the visitors’ comments, I decided to use a clever trick.

I temporarily registered a private WordPress.com blog. Then I went to Tools → Import and selected Posterous. After the import was completed, I used Tools → Export to get a WordPress eXtended RSS (WXR) file for all posts and comments. With this file at hand, I imported it to my self-hosted blog (using Tools → Import). I re-uploaded and re-linked the few images in my posts, because they pointed to WordPress.com after the import, but I didn’t plan to keep the private WordPress.com blog around. I deleted the private WordPress.com blog. I then switched the A record in my DNS from the Posterous IP to that of my server.

The key here was to use the Posterous importer provided by WordPress.com, because unlike the public version that’s available as a plugin, Automattic (the company behind WordPress.com) ensures that it’s actually working.

I plan to post much more often now that I have a nice, neat setup for my personal blog. Grab its feed or sign up to receive my posts by email in the sidebar.