Migrating a massive legacy CMS to WordPress without losing your mind

I'm going to WordCamp Miami this weekend. If you're a WordPress user or developer, I hope to see you there!
Written by David Gewirtz, Senior Contributing Editor

This has not been the best few days for WordPress. Despite the challenges that WordPress.com is currently dealing with -- a massive distributed denial of service attack is never fun -- the WordPress ecosystem is going strong.

For the record, I doubt this week's DDoS was an attack aimed at WordPress itself. Usually, these sorts of attacks are political and aimed at a site hosted by a service. The rest of WordPress.com sites are probably just collateral damage.

WordPress.com, itself, is huge. It's one of the top sites on the Internet. WordPress.com is differentiated from WordPress, the software. WordPress, the software, is an open-source environment that powers WordPress.com. While I wish the folks running WordPress.com well, what really interests me is the open-source PHP-based software.

That's where my own connection with this story picks up.

A little over a year ago, I decided to migrate the ZENPRESS content management system, a system I first started coding back in 1997, from UserLand Frontier to WordPress. I chose WordPress for many reasons, not the least of which is that it's the system that runs both ZDNet and CNN's Anderson Cooper 360, two sites I write for.

When we started ZATZ Publishing (my day job) back in the late 1990s, there were only a few content management systems, they cost millions of dollars (and weren't terribly good). PHP was a 1.0, Bill Clinton was President, Matt Mullenweg and Mark Zuckerberg were both 13, and the term "blog" had barely ever been used. It was a long time ago. Since then, ZATZ has published nearly 70,000 articles, linked to more than 150,000 URLs, and fed almost 2 billion Web pages.

Frontier, developed by Web pioneer Dave Winer, was itself a pioneer ahead of its time. Frontier ran the earliest blogs, the earliest RSS feeds, and the earliest podcasts. But time has taken its toll and Frontier hasn't aged well. Although it was open-sourced in 2004, it had a number of problems, relatively low community support, and suffered from one fatal flaw: a key module was available in binary only, licensed code from a company no longer in business.

I never expected the ZENPRESS code to grow and evolve for 14 years, and it's definitely outgrown Frontier's capabilities. Tables in Frontier that should handle only a few tens of thousands of records have been asked to handle millions of records. Frontier crashes regularly on my servers, and I can't move to 64-bit because Frontier fails on 64-bit environments.

Don't get me wrong. I have great respect for Frontier. It showed the way for many modern technologies. But time marches on, and I have been in the process of migrating off Frontier for the last year or so.

I chose WordPress, as I said, in part because other sites I respect and work with use it regularly. I chose it because it's an incredibly capable open-source product, and because it is robust. DDoS notwithstanding, WordPress has a disciplined and well-orchestrated upgrade process and security upgrades occur whenever needed.

For the past year, I've been coding in PHP, rewriting ZENPRESS from the ground up, using all the lessons learned from 14 years of iterative design, and creating an entirely new system. Just like the modern Shelby Mustang takes its design cues and is an homage to the original 1960's Shelby GT500, the new ZENPRESS takes the best of the old ZENPRESS, but upgrades it completely with modern technology.

When I started looking at host environments, systems that would help me migrate ZENPRESS' many sub-systems as quickly as possible, I looked at a lot of factors. WordPress holds up technologically, and that's very important. But what sold me was something else entirely.

What sold me was the community, one that's friendly, helpful, and very well-informed. I started watching videos of WordCamps at WordPress.tv. I liked the people, I liked the speakers, and I learned a lot.

Each year, WordPress developers and bloggers hold gatherings -- part technical conference and part love-fest -- called WordCamps. They're actually all over the world, from San Francisco to Seattle, from Wellington, New Zealand to Fukuoka, Japan, and from Boston ... to Miami.

In fact, it's the WordCamp in Miami on Saturday that inspired me to write this piece. I'll be down at WordCamp Miami, learning about WordPress and meeting members of the community.

I'll also be speaking, giving a talk called Migrating a massive legacy CMS to WordPress without losing your mind, telling the story of the first programming year of that migration, why I chose WordPress, some of the design principles that were set out, tricks and lessons I’ve learned, a tour of some of the cool plug-ins I’ve developed so far, and tips and hints for anyone else who might want to try migrating a large, custom system while still retaining some shred of sanity.

WordCamp Miami will be an opportunity for me to learn, and to give something back to this astounding community.

If you're going, I hope to see you there. And if you're you're not able to make this WordCamp, visit WordCamp Central and choose one of the upcoming events.

See you in Miami!

Editorial standards