I’ve built hundreds of content management systems (CMS) in my web career. Well, maybe not hundreds but it certainly feels that way. Early in my career I custom built everything.
That is, until I discovered the amount of free, open source CMS applications available out there. At which point it seemed like a no-brainer, why spend all my time building something when someone else has done the work — and is giving it away for free! Nowadays though I’ve realized it’s not such a clear-cut choice as one might think.
It’s stupid to recreate the wheel on every project you have if there are suitable alternatives available to you. Open source applications are awesome. You can save a ton of time and headaches by using them. Always consider where you might be able to integrate or use one in your projects. That being said, don’t try to shoehorn something in that doesn’t really fit just because you can.
As far as open source content management systems are concerned, there are several great ones out there. Based on all sorts of languages: PHP, Python, ColdFusion, .Net, Java.
The ones I’ve used have been mainly PHP, Python and just one in ColdFusion. The one I have most experience with is a PHP based one named Joomla. Very powerful with a ton of great features and nice plugins. There’s also the Python based Plone which is pretty nice as well, though not as fully featured as Joomla. The problem with both of these you’ll find — speaking from the administrative point of view — is that they’re entirely too complicated for the average client that’s looking for a simple way to update content.
Listen to Users
Your users are the most important thing. Design with users in mind. Create content, navigation, graphics — everything, based on user needs first; everything else is secondary. With that in mind think about whether that open source content management system is a good fit. Is it too complicated? Is it too difficult to navigate? Will I have to train them on how to use it?
The last thing you want, is to end up taking support calls because something you delivered to your user is too difficult for them to use. Even if you charge for support calls, don’t do it. It’s bad business. They’ll leave you as soon as they find an easier way to do it or someone that can build something easier for them. Keep users happy, they’re why we get paid.
So when deciding on whether to use an open source CMS think to yourself — is this easy enough for the person who will be using it