Before Icrontic’s big migration to our new forum platform, I wrote about the search that led me to Vanilla. Now I want to talk about some of the technology behind it.
So, what did we do? Before today, Icrontic was really three separate WordPress sites and a vBulletin forum. The site was divided into four subdomains: icrontic.com (along with the forums), gaming.icrontic.com, tech.icrontic.com, and life.icrontic.com. The first step was to take Icrontic’s multi-site WordPress installation and fold it into one single blog. Second, our vBulletin forum was migrated to Vanilla, including the old member blogs (remember those?). Most importantly, we did it all without losing data and without breaking any links. Those two factors can turn any migration into a nightmare.
The vBulletin to Vanilla importer is probably the most robust of the transfer tools available for Vanilla. It accounts for everything from private messages to custom profile fields to the twisted way vBulletin 2.0 stored attachments. On the Vanilla side, we needed a number of plugins for the particular feature set we want for Icrontic. The last two plugins we wanted at launch, ButtonBar and ProfileExtender, were just finalized recently.
We run a custom Vanilla / WordPress integration designed to replicate the custom vBulletin / WordPress integration we previously used. Now, Vanilla has awesome WordPress integration out of the box. In fact, for most site owners, I would strongly recommend the existing tools for doing this. However, I wanted Icrontic’s integration to go even deeper. Not only did I want single sign-on—I wanted the entire WordPress user system to be force-synced to Vanilla. Although iframes are becoming more standard as a way of embedding comments, I also wanted to use WordPress’s native comment template and avoid extra HTTP calls. To do this, I wrote Glue. It’s a hot mess to set up, but it’s my weapon of choice for this challenge.
Beyond the Vanilla importer, over 600 lines of custom import code were written. Its first task was to combine the Home, Tech, Gaming, and Life sites we set up in WordPress years ago. Dealing with category and tag collisions was migraine-inducing. As far as I can tell, no one else has had to do this. If you stumble on this via Google and want to see how I did it, shoot me an email. The other tasks were to convert the vBulletin blogs into forum discussions, import all our guest users (Vanilla doesn’t do guests yet natively), and import our community gamification system. Whew.
Stand back: I’ve got root
Our new setup also shares a single WordPress code base with our sister sites, IntoDetroit and NewBuddhist. This greatly simplifies updates and security because it’s much simpler to maintain a single copy of the software. We use git and some custom shell scripts to push seamless updates to WordPress and Vanilla. Because I also work for Vanilla, I frequently want to upgrade one or more sites to the latest bleeding-edge of our development process. With our new setup I can do this with a few keystrokes.
Lastly is the most fun part: the redirects. Vanilla comes equipped with the ability to auto-forward your old forum URLs to their new locations, but it goes far beyond that. In all, Icrontic’s virtual host setup and URL rewrite rules currently take up approximately 300 lines in our Apache config files. We’ve run at least five different CMSs over the years (and on a different domain!) and nearly all those links still work.
How We Roll
Now that the huge migration is done, we can iterate. What’s that mean? The site still doesn’t do everything we want it to—not by a long shot. There’s a backlog a mile long of small to medium-sized ideas we’ve wanted to implement. But, there was little incentive to create a feature for vBulletin in the last two years knowing I was going to be scrapping it all anyway. I’m finally free. Vanilla’s flexibility means I can create a new feature in a weekend and try out new ideas. This is just the start of all the awesomesauce to come.
So if you ever need a two-year project to keep you busy, just decide to migrate your screamin’ busy, 11-year-old forum to new software that hasn’t been released yet. You’ll learn a helluva lot along the way.