This is part 1 of a 5 part series on choosing the best Content Management System for your project. Over the course of the next few weeks I will explore how you’d create the same site in 4 of the top usable CMS’s.
As a web developer, a task you may have at the beginning of each proposal is discerning the proper way to manage content. With so many options out there, even some of the world’s finest developers find it to be a challenging task.
Some initial things to consider are:
Budget
One major factor when writing a proposal is to consider the company’s budget. I always suggest an open source solution for two reasons. First and foremost is the overwhelming support available from an active community. A zero-dollar entry barrier will insure that the brightest minds are at play (as well as the not so bright :). Secondly, as a businessman, it allows me to maximize my profit margin. We must feed our families so I don’t see the point in throwing money down the drain when it isn’t necessary.
Often you will find that the customer’s needs are outside that of any CMS by default. In this event it is likely that someone has been down this road before and there is a plugin / module to achieve the functionality. If not, you will need to consider the costs of having a plugin or module developed.
Never assume that a function or module is available when writing your proposal, no matter how common the task.
Timeline
Time is an important factor. Deliverables are most likely planned on a calendar and not meeting them in a timely fashion are usually grounds for termination of contract — or worse, a refund in payment. This is where improper planning of features can really do the most damage. Make sure that your timeline includes enough padding for a learning curve (no matter how talented you are as a developer) and for the development of modules for custom functionality.
Content Types
Most of the time you’ll face more content than simply articles and blog posts. As a matter of fact, most commercial projects feature various content like Products, Staff, Initiatives, Jobs, Support Tickets, etc.
Each CMS has a different approach for handling content types. Expression Engine would have you setup template groups and templates, where with Drupal, albeit a bit more challenging, you could tag-team the Content Creation Kit (CCK) with Views to achieve endless possibilities, no matter the content.
Wordpress can be a more simple solution if your clients website is based around single blog blogging, podcasting, re-syndication, or vlogging. With RSS feeds on everything by default, the install can be modified to be a directory, a job board, portal, etc. Movable Type would make more sense if your client needs to manage an entire blog network under one install.
User Types
The way the users interact with the site is another factor to consider when choosing your CMS. In WordPress you’re generally limited to a Author / Comment relationship. You can manipulate comments for things such as ratings, feedback and voting but the options are definitely limited.
In Drupal, for example, every user has a profile to which you can edit to become custom profiles and identities according to the sites needs. Perhaps everyone at the site could have their own portfolio pieces, favorite links, or their last 10 posts. It’s really up to you.
Silverstripe has really stood out as of late because of the way their CMS handles different languages and page translations on the fly.
Support
There will be times when even the best programmers are stumped. This is why having an active, enthusiastic, friendly, support community is a must. There is nothing better than hopping on IRC and getting real-time help from a complete stranger.
If you are still unable to find the answers you need, there are plenty of paid services (like mine, for example) that will leverage their professional resources in order to help you find your solution.
In Conclusion
In reality, every CMS could potentially be the best for your project — they are only limited to your knowledge and creativity. The best advice you could ever get is to learn a little bit of PHP, choose a CMS that you are excited about, and learn absolutely everything you possibly can — If then you find that your needs aren’t met, try again.
In Part 2 we will discuss tackling a business website with products under multiple categories, a blog, an about us page and a contact form with Drupal.
