Switching Content Management Systems - what a nightmare.

Back when I started Gadgetell, I made the relatively simple decision to use WordPress as the site’s Content Management System.  At that point, I only cared about two things: 1) it’s free, and 2) it has a huge development community.  I needed all the support I could get since this was my first hosted blog. 

Once Adam came on board and we grew Gadgetell to a decent size (about a year later - October 2006), we decided to branch out and create sites for Apple news, and gaming news; meet Appletell and Gamertell (which both finally launched in May 2007).  We figured it would be best for the growth stage of our business if we moved to a CMS that was made to handle multiple blogs in the same control panel.  The ideal solution would allow us to have multiple member groups, multiple blogs, and a whole slew of other options.  We did our research, and it appeared that ExpressionEngine was the way to go.  They had a fair-sized loyal development community, and had pretty much all the settings / options you would ever need.  Also at this time, we thought it would be a simple export / import moving the Gadgetell data from WordPress to ExpressionEngine.  Boy were we wrong.

We were already working with a design firm at this time, and they said they would move the Gadgetell data into ExpressionEngine.  When they realized they didn’t have the means to do the work (after months of fumbling around), they hired outside help.  Little did we know, the outside help was going to run into problems as well.  It seemed that none of the WordPress export tools were able to handle our data for some reason.  The bizarre thing was that we didn’t make any crazy customizations - it was pretty much out-of-the-box.  The only feature we counted on that was not included in WordPress itself was Ultimate Tag Warrior - a fantastic plugin by Christine Davis.  We also had one custom field in WP that we relied on to auto-generate the thumbnails.  All of that beside - we knew what needed to be done: export the WordPress data in MovableType format (pretty much a standard for blog migrations), and import the MovableType data into ExpressionEngine.  Sounds easy, right?  Apparently not.

After months of the outside help not being able to do the migration (whether it was due to other commitments or simply not being able to do it, I’m not sure), we hired another developer to do the work.  Apparently the ExpressionEngine import tool was just not cutting it, so our new developer wrote an ExpressionEngine module to do the migration.  This process only took a few weeks of grunt work, and we were all ready for EE… just in time for the Consumer Electronics Show in Vegas.  Following CES, the developer went MIA (and has been MIA ever since), so I had to learn how to finish up.  Now it was my turn to figure out how to do all of the URL redirects via .htaccess (which I had little or no experience doing).  The goal was to get the old WordPress URLs to redirect to the new EE URL structure so the proper pages were delivered.  I finally figured it out after a couple hours of Apache .htaccess research.  Note: the official documentation is not helpful at all.  I’ll cover how I did this in another post, so check back soon.

So where do we stand today?  We still have yet to get the the custom field that holds our image urls moved over to ExpressionEngine since that was overlooked in the initial migration, but that’s really it.  We’ve run into a few roadblocks with EE and our server, but that too will be a good topic to discuss in another post.  I think I’ll call it “How the hell do you configure your server to handle high traffic EE sites?” - a question to which I don’t really know the answer to, but when I do, you’ll be the first to know.

And that, my friend, is the story of how switching content management systems can be an absolute nightmare.

A few takeaways from this experience:

  • To developers: Be open and HONEST with your clients.  Don’t hold anything back that may piss your clients off later.
  • If you don’t know how to do something, then find some who can, and move on.  You can’t be afraid to admit you don’t know how to do something.
  • If you have development work, don’t hire a design firm to do it.
  • Work WITH your clients to get the work done.  You’re all working towards the same end-point.
  • If you’re working towards a deadline, don’t waste time writing long emails to the client.  All they want to know is that you’re working on their project and haven’t forgotten about them.
  • Always set milestones for your projects.  If a developer has no milestones to work towards, then they’re in no rush to get it done.
  • Make a contract with every contractor you work with.  I don’t care if they’re designing your site or coding a plugin.  Make a contract.

I’m sure there’s a ton more lessons I’ve learned, but if I wrote them all out now, why would you come back to my site?  Stay tuned.

Feb 11, 2008

Looking forward to your thoughts!

Name: *

Email: *

Location (Links to Google Maps):

URL:

Remember my information?

* Required fields

Notify me of follow-up comments?

Submit the word you see below: