After more than two years using Community Server 1.0 I finally threw in the towel and moved to WordPress. If you’re reading this you made it to the new site (or RSS feed).
Community Server 1.0
In June of 2005 I decided to start blogging. I surveyed the blog engine landscape and although a friend of mine who was more familiar with blogs told me to use WordPress, I opted for Community Server (CS), since I’m a .NET developer and CS is written in .NET.
The initial configuration should have been a warning to head for the open source hills. After the installation I had two semi-custom items on my agenda:
- Make my blog the home page (since by default CS has a landing page where you can visit forums, galleries, and other pages)
- Run the RSS feed through FeedBurner so I could track subscribers.
Together, these tasks must have taken north of 8 hours. It was insane.
When I was a little younger and had a little more free time I loved to tinker with this type of thing, but these days when I set out to accomplish a task I don’t want to deal with trivial technical issues that turn into all-day rabbit trails.
The problem was there was no real community around CS, it had a small user base, it was overly complex, and the blog engine is actually a secondary feature of the application (forums and other community features are the focus).
Over the next year it got worse. Anytime I wanted to add some kind of functionality I did a search, but no one makes plugins for the CS blog engine…oh wait, that’s because there’s no plugin architecture.
My initial thought that I would make modifications to the code went out the window in the first week, when I spent 4 hours and couldn’t get the thing to compile. This is what I do for a living…every day, 8-10 hours a day, and I gave up out of frustration.
That was the point when I abandoned hope that I would modify my blog to any degree larger than pasting a 3rd party widget in the sidebar.
When IE7 came out the WYSIWYG textbox stopped working, so I switched to Firefox for my editing only to have FF 1.5 render pasting into the textarea useless.
So I began copying the raw HTML from Google Docs (where I wrote my drafts so I could hyperlink items, since that didn’t work in CS using Firefox), and pasting it into the HTML view of the WYSIWYG editor, then saving immediately, because if I switched to the visual editing mode and then back into HTML it lost everything (which I learned the hard way).
I also tried adding automatically generated links to the bottom of each post. I wanted every post to have a “Digg this Post” and “Add to del.icio.us” at the bottom, pre-populated with the post’s permalink URL. In WordPress this is a slam dunk.
After an hour of searching I posted to the CS forums about this, but no dice. I posted again a few weeks later but didn’t hear anything.
I could keep going, but I’ll spare both of us the fun and excitement of re-living those days.
While this was going on I started a few other blogs, this time using WordPress. And sweet mother what a difference. Like night and day. Like a Pinto to a Porsche. Like a Dell DJ to an iPod.
Things just work.
And when you think of a feature you want to add (“Hey, I want all of my beer recipes in the sidebar”), someone’s already thought of it and made a plugin that drops your implementation time to 3 minutes.
Needless to say I’d been entertaining the idea of migrating to WordPress for well over a year, but the idea of moving my posts, categories, comments and customizations was enough to keep me plugging away with CS 1.0. In addition, with thousands of incoming links I didn’t want to abandon the URLs of my posts if I moved to WordPress, so I would have a lot of custom 301 redirects (or mod_rewrites) to worry about. It just never seemed like there was a good time to tackle this.
But as CS 1.0 got worse and I began dreading writing new posts I realized I needed to take action. I decided, if nothing else, I needed to migrate to the current version of CS, called 2007.1.
The migration was easier than I expected and took less than an hour. The problem came when I tried to find a decent skin; for the life if me I couldn’t find any good skins for CS blogs.
I don’t even mind paying for a skin, but without having a custom design it doesn’t seem like there’s much out there for CS (whereas WordPress has literally thousands, and finding a custom skin designer is quite easy). I even emailed two DotNetNuke designers, neither of whom worked on CS skins. After 3 hours of searching I decided to take a serious look at moving to WordPress.
After a brief search I found a recent standard for exporting blogs called BlogML, and also found an exporter for later versions of CS.
Without BlogML I estimate it would have taken around 3 days to migrate my blog. With the steps I took below that number was around 7 hours:
- I installed the CS 2007 BlogML converter and exported my posts, categories, and comments to BlogML. Elapsed time: 30 minutes.
- I created a new install of WordPress using DreamHost’s one-click installation. Elapsed time: 15 minutes.
- This step was the gold-mine find: I installed and ran Aaron Lerch’s WordPress BlogML importer, which as far as I can tell is the only one of its kind. I had to make some modifications to the PHP because WordPress 2.3 moved from categories to tags. Elapsed time: 90 minutes.
- After viewing the new posts I realized the funky line-breaks in the BlogML exported by CS had to go, so I tried it again. Elapsed time: 15 minutes.
- After a couple test runs I was ready for the real deal. I created a second WordPress installation, my “real” installation, and re-ran the import. Elapsed time: 15 minutes.
- The genius of Aaron Lerch’s importer is that it lists all of the URLs that you need to 301 redirect to the new WordPress URLs. I sat down with UltraEdit and 30 minutes later had a working .htaccess file. I ran into a slight problem with dashes and underscores, but some regular expression search and replace (god bless UltraEdit) took care of it.
- Finally, I found a rocking theme from the thousands of themes available, added the FeedBurner plugin, made my sidebar customizations, and re-pointed my DNS. Elapsed time: 4 hours.
I’m not in any way bashing Community Server or the guys over at Telligent, I’ve met several of them and they are really solid developers and good guys. But CS is built for high-load community sites, not one-person blogging operations. Some of the blame rests with me for choosing a tool that’s not made for my situation.
The moral of this story is if you are the end user, choose software based on features and community, not on technology. The technology is almost irrelevant when everything you need is available as a plugin or widget.
I still have a few kinks to work out; if you run into an issue I’d appreciate an email (rob -at- softwarebyrob.com). I’m especially interested in 404s.
[tags]community server, wordpress, blogging[/tags]