What is a CMS?
A Content Management System, or "CMS", is a type of software which runs (most often) on a web server, and serves several important functions in the modern web world:
- A CMS allows people to update a website without highly specialized knowledge. Because a CMS separates design or presentation from content, anyone can learn to keep the content updated without fear that they'll accidentally delete an HTML tag and ruin the site's layout. In Drupal, the CMS we most often recommend, users can edit page content areas, sidebar blocks, and navigational menus separately without fear of accidentally breaking something.
- A CMS can automate certain functions, saving time. A good CMS can allow administrators to create pages that are automatically updated, such as blogs— although it can get far fancier. For instance, imagine you have an events page displaying one list for upcoming events and one for past. If you add a new event, wouldn't it be nice if the site automatically sorted that event as either "upcoming" or "past" depending on the current date, saving you the time of painstakingly editing your list whenever you remember to do so?
- A CMS can add "workflow management" abilities to creating and editing content. You may have certain employees who can create new pages or articles, while others have final say on what is published on the site. You might want lists of "pending" and "live" pages, and maybe you need the website to send notification emails when a page is edited or receives a status change. Recently, we developed a peer review system that combined a workflow process with an automated "action/reaction" system, in which particular actions taken by authors and aministrators changed the content status and sent emails to participants notifying them of the changes.
- A CMS can allow for finely-tuned access control, allowing for certain individuals to access sensitive areas or capabilities within your site. You can create as many permission levels as you need, grant access to particular users, or create "access-control groups" to confine content- or user-management capabilities by, for instance, office or franchise region.
- Ultimately, a CMS can lower a website's Total Cost of Ownership (TCO), allowing finances to be more efficiently spent. Of course, a CMS cannot allow an inexperienced user to do just anything; it still requires HTML and (often) knowledge of a programming language to build the site and make design changes. That said, most clients who move from a static site managed through FrontPage or Dreamweaver to a CMS like Drupal find that they save time, frustration, and money, and moreover feel empowered that they can do approximately 75% of routine site maintenance on their own.
Most web developers have their own favorite CMS, and they usually have valid reasons.
Among free and open-source, popular CMSs, Drupal may be the most flexible and powerful system that exists. It's been around since 2001 and has matured tremendously since then7. Drupal excels at every function described in the bullet list above.
Common complaints about Drupal include a somewhat high learning curve and a lack (in some cases) of built-in functionality; as a highly modular system, a client needs a web developer to install many of the common usability enhancements present in other CMSs like WordPress or Joomla. This is a double-edged sword, though, since it means Drupal can be more flexible and extensible than many of its CMS cousins, and that Drupal does not bog your server down with unneeded functionality.
Strictly speaking, Magento is not so much a CMS as an e-Commerce platform, but unlike some types of software, Magento does a pretty bang-up job at managing static content as well-- provided your needs for content management are not through-the-roof, and your main needs are in the e-Commerce sphere. For example, there is hardly a system out there that does a better job at providing configurable and bundled (e.g. "build-your-own") products, complex promotions, and more.
WordPress began as a hosted blogging platform similar to Google's Blogger (formerly Blogspot) system, but has matured since then as a full-fledged CMS that is gaining respect every day. Its user interface is second-to-none, although you must be aware that WordPress cannot provide e-Commerce and does not provide nearly the complexity of Drupal in the world of advanced site management.