There are a number of Content Management Systems (CMS) out there. We primarily use three of the larger CMSs: ExpressionEngine, WordPress, and Drupal. Each has advantages and disadvantages, and each works best for certain types of sites. Occasionally there is need for a custom CMS, which always come with their own benefits and drawbacks. In the end, its all about what your sites goals are, who will be maintaining the site, and what kind of functions the site needs.
We always use a CMS when we build websites because we feel that your website should be yours to own, maintain, and update. We dont own our clients, we dont lock up data, and if they want to fire us they should be able to! We think of websites in car analogies: when you buy a car, you should be able to drive it, put gas in it, change the wiper blades, bedazzle the dashboard, whatever. When you want to add a spoiler or overhaul an engine, thats when you call us.
Open source vs. proprietary
Every system has advantages and disadvantages, but there is one that is inherent to how the system is distributed. If a CMS is free and open source, that means the code is available for anyone to use and for anyone to adapt to their needs. People are donating their time and energy to making a system that they love. We love the culture of giving on the internet. As wonderful as that sounds though, the trade-off usually comes in the form of technical support. The support for open-source is dependent solely on the community behind the system. If they are too busy to help, or if they just dont want to, thats their prerogative. Theyre giving the system to you for free, but keep in mind that nothing is ever truly free.
If a CMS is proprietary, then you will likely have to pay a licensing fee to use it. These may be one time fees (from a few dollars to a few hundred dollars) or recurring fees (could cost hundreds of thousands of dollars over time, depending on the system). In general, this could be a case where you get what you pay for. If youre buying a system, that usually comes with a dedicated support team.
Why we love ExpressionEngine
ExpressionEngine??(EE) is a proprietary CMS created by EllisLab. Its a great system thats both easy to develop with, and our clients LOVE it because its so easy to use. ExpressionEngine is great for small to medium sized sites that have mostly static content (define static content). Since its proprietary, there is a dedicated support team, and most of the third-party add-ons are also well-supported.
Theres a lot of freedom to customize a site with EE. From a development standpoint, its like building a site from scratch. There are no templates or themes to contend with, just pure HTML/CSS. From the administrators standpoint (the person editing the content of the site), we are able to fully customize the admin panel to make it super simple to get right in and get started.
The catchSince its proprietary, the code is not open source and there is a licensing fee to use it. The license fee depends on whether the site is for-profit or nonprofit and how many add-ons youll be using. On average, we spend around $500 in license fees and third-party plugins/add-ons for EE.
Another drawback is that its not very expandable to hook into other systems. If your site is going to have to integrate with a third party system (for example, weve had a request for MindBody Online, reservation system for classes), its not really the best solution. The code for it isnt open source so youre somewhat limited to what you can do with it in that way.
Why we love WordPress
WordPress (WP) is a free and open source CMS. It began as primarily a blogging platform, but has expanded into a full on CMS over the past couple years. Since its so popular, there are a ton of developers for WP and a vast number of people have used it before. There are a LOT of add-ons (WP calls them plugins) available to add functionality to your site, and the user has a lot of control over the content of the site.
WordPress is great for smaller sites and really shines for blogs and magazine sites where there is need for constantly updating content with lots of categorization and tagging.
Since its free and open source, the support is mostly from other users. Occasionally you might hear from someone who actually develops WordPress in their support forums, but those voices are few and far between. In that same vein, the plugin developers could be a 14-year-old high school kid who updates his plugin about as often as he takes out the trash (read: never), or they could be by the same people who help develop WordPress and they might keep it up to date all the time.
WP also faces some limitations when it comes to custom content. While it does allow you to have custom fields for content and custom page types now, theyre a little tricky to get used to. Its not as clean as EE for instance, but it gets the job done.
Why we love Drupal
Like WordPress, Drupal is a free and open source CMS. With its barebones core, its not filled with a bunch of junk, but is highly extensible using add-ons (which Drupal calls modules). The Drupal community is very large, and most of the modules are generally well-supported. Since Drupal was originally built as a CMS, it tends to be more flexible in terms of content types than WordPress. Drupal is also great for connecting with third-party products; since the core is so basic you have a lot of freedom when it comes to adding functionality.
Drupal is great for large sites, sites that require uncommon functionality, sites that have a LOT of content or data, and where the user needs the ability to easily update their own content. It is still a content management system, after all.
Since its free and open source, it suffers the same downfalls as all things that are free and open source. Drupal has a highly dedicated community and you can usually get help fairly quickly from other users though, at least compared to WordPress.
Theres also a little more of a learning curve for using Drupal than something like ExpressionEngine, so it can take some getting used toits a tradeoff that youd make for the added capabilities.
Sum it up already!
So to put it all together, what really matters in the end is what you need your website to do, how you plan to manage it, and what sort of structure are you looking for. These are questions we ask ourselves every time we start a new web project for our clients. We always focus on what will work the best for a particular project and making sure our clients feel like their website is THEIRS.