How Does a CMS Work?
As explained elsewhere, a CMS is a type of software that runs on a web server and is accessed through a web browser (rather than requiring Dreamweaver, FrontPage, or iWeb). But that leaves the question: how does it actually work? How do I change my site on a periodic basis? We explain that below:
When editing a "traditional" site (built in either HTML or Flash) — updating content, adding news articles, or modifying custom-programmed applications— the process can be time-consuming and tricky. It may go something like this:
- Client calls or emails web developer with summary of changes.
- Web developer may have to download a number of files from the web server, open them, and change the HTML code or Flash elements by hand. File changes must be made in a highly coordinated manner so as not to break anything or cause "dead" links that lead to the dreaded "page not found" errors. Hopefully, if significant custom programming was required, developer can find the portion of the code and change it successfully without breaking something else.
- Web developer uploads files to server and contacts client.
- If a mistake is made or something is accidentally deleted, the web developer may or may not have copies of the old files, increasing the time and cost.
With a CMS like Drupal, the process is simpler and more automated:
- Client (or web developer) logs into the website using his or her web browser; no extra desktop software is required. Client or developer makes changes in real time. Often, no uploads or downloads from the web server are required.
- Often, a site will be built such that a change in one place causes all other applicable changes to happen. For example, posting a news article may automatically result (if desired) in a new link to that article being placed on the homepage.
- If a mistake is made, quite often older revisions of the page will be saved and can be accessed, thus saving time.
- As mentioned elsewhere, it is possible to further automate the process by allowing a lower-level administrator to create a page, but only allowing higher-level administrators the ability to finally publish. The options are endless: emails can be generated when content is published or commented on, or other actions (such as "modify Page A when someone edits Page B") can be taken. These actions can also be scheduled so that, for instance, a magazine's newest issue can be taken automatically "live" at midnight on the day of the print publication release.
"But what if I want further, more complex configurations?"
Conventional wisdom used to be that anything beyond the most basic websites needed to be built completely from scratch, often resulting in a project in which the web developer had total control of further edits. However, frequently that's no longer the case; although each client's needs are unique, it is significantly less likely these days that a given project is so unprecedented or complex that no one has attempted to solve a similar problem. And more often than not, some good soul has contributed to a free, open-source project that can jump-start the development process. Sometimes, needs involve common "use cases" such as photo galleries, calendars, and blogs, but in other instances we've developed more complex applications— such as peer review systems and regulatory forms complete with automatic reminders and conflict-resolution processes— within a scientific research organization, using Drupal modules and minimal custom programming.
You may be developing a web project far more ambitious than anything described above, and it may require ground-up custom development. However, even in such a case, you may be surprised to at the power of currently-available CMSs to accomplish what you have in mind, and furthermore to give you unprecented control of your website— if you want it.