A Content Management System (CMS) or Web Content Management System (WCMS) is a system built to create and control HTML content. Content Management Systems on the Web allow users to easily create, manage, organize and update content on their website without extensive knowledge of HTML, CSS, FTP, or a number of other languages. This is because most Content Management Systems create a user interface often with WYSIWYG (What You See Is What You Get) editors built in, so the user only minimally deals with actual code. The system also usually links directly to a database giving the user the ability to update their database content and even their user permissions with no knowledge of SQL or database structure. Further, most Content Management Systems allow for different users to have different access rights, so a site could easily distinguish between anonymous browsers and site members and display content accordingly.
Content Management Systems are used in virtually every type of website today including blogs, social networking sites, e-commerce sites as well as standard static personal pages or portfolios. But there are many different types of Content Management Systems, and it is important to choose the right CMS for what you are trying to accomplish. A relatively complete list can be found at cmsmatrix.org. Here you can not only view the capabilities of the chosen CMS, but directly compare it to another CMS on the site. Some of the more popular CMSs are Drupal, Joomla and MODx, all of which are written in PHP. Most Content Management Systems also allow for some visual customization without ever opening the CSS. Many have a series of templates that the builder can choose from as the default “look” of their site and there are many additional downloadable templates available online. In addition to those, there are entire companies that specialize in creating and selling templates that can be easily added to a CMS. However with even basic knowledge of CSS, a user can customize these templates further through FTP access and even create their own template from scratch.
An additional advantage of using Content Management Systems is their powerful modules. Modules are pieces of code that are added to the core functionality of the CMS to give the CMS additional functionality, ie search functionality. Most Content Management Systems are open-source so they are constantly being improved and new modules are added regularly (depending on the CMS, of course). While a website can easily be created with minimal coding knowledge, a CMS really achieves its full potential when PHP or other coding languages are added to the CMS’s already existing code. When a user can edit an existing module or create their own module, the site’s customization and functionality are greatly increased. Also because of this, communities form around specific Content Management Systems with the intention of sharing knowledge and exchanging code to improve the CMS itself.
While all of the above are great reasons to use a CMS whether you’re a novice or an expert, the biggest benefit of using a CMS is that it can easily be built for and given to users with no knowledge of HTML. Once a site is built and customized for a user, it is very simple to just give them access to the site allowing them to edit and update their own content. The site’s new owner will not need to contact the builder to simply update their content, greatly reducing the site’s maintenance. Also, the builder can give the new owner access while still restricting them from certain elements of the code, therefore ensuring that the new owner does not inadvertently damage the site. While the use of a CMS is always a choice related to the needs of the user, there are certain negative aspects to using a CMS depending on the user’s expertise. With just basic knowledge of HTML and CSS, customizing your website through a CMS can be very difficult, and it can end up looking like every other site built in that CMS (of course with basic knowledge of HTML and CSS, coming up with an original looking site would be difficult to begin with). Also, these systems are not perfect and can sometimes become frustrating when they do not behave as we expect them to (or they just crash for no reason), even when we are capable of providing a workable solution in straight HTML. Content Management Systems can be excellent organizers though and with a good community of users behind a CMS, there are few things that they cannot capably convey. While easy for non-coders to pick up, in the hands of a user with coding knowledge, Content Management Systems become very powerful tools to create, manage, organize and update new and dynamic content on a very regular basis. Further, because of the existing code structure and modules in place, putting up an elaborate and extensive website can be completed in a fraction of the time it would take to build a website from scratch, and it can be done with relative ease.