The really simple guide to web content management systems

Our own guide to what a content management system really does. By David Walker.

A simple overview of websites

At its simplest, a website is a set of files on a computer. The computer is called a web server. Anyone in the world can ask it to serve up simple files, called web pages. The network of websites is called a web because all of the files can be linked to each other to make up a web of files. Hence that familiar "www" in website addresses. It stands for "World Wide Web".

In a lot of ways, these simple web pages are just like Word files. They contain words and pictures. (They can also contain audio and video and other things, but never mind that for the moment.)

But instead of viewing web pages in Word, we view them in a web browser like Internet Explorer or Google Chrome or Firefox.

A simple overview of web pages

Instead of writing web pages in Word, we write them as ordinary text, but "marked up" with instructions on how to display it.

This is essentially what people used to do when they marked up typewritten pages with instructions for printers. Web pages are not "computer code". They are really just plain old text with a bunch of instructions in angle brackets to say how to display the text, and where to put pictures and video and so on.

If we want to write a paragraph for a web page, we write it like this:

<p>The cat <strong>sat</strong> on the mat.</p>

And that markup displays like this:

The cat sat on the mat.

So the "language" used to write web pages is called a markup language. As you can see, anyone can write it. It's much easier than writing a computer program

This markup language is called HyperText Markup Language – or as most people refer to it, HTML. (This is why web pages are sometimes called "HTML pages" or "HTML files". The "hypertext" bit refers to the fact that the World Wide Web allows any page to be linked to any other.)

We can also use computer languages to take information from a database or from a web form, change it as needed, and display it as HTML. Many computer languages can be used for this purpose – Perl, Python, Java, .Net, ColdFusion, TCL, dozens of others. The one we use on this site is called PHP, but we could use any other language and nothing would change from your point of view. These computer languages are the plumbing of your website. For most purposes, it doesn't matter what the plumbing is made of as long as water comes out of the tap.

To manage a website that works like this, you do not have to write any real computer code. It just helps to know that it's there.

A cautionary note: Some people, particularly those with some experience in the world of programming, can get into very animated discussions about which language is best for a content management system. The answer, usually, is "whatever language in which the available talent can write and maintain the technology you need".

The easiest way to manage content

Because the Web lets people link documents to each other – and because unlike our personal documents folders, the Web's document collection is built by millions of people – most web pages have more than just the words and pictures and video and so on. They also show the site's name and some other information, including lists of other pages that we might want to use. All of these things may remain the same from page to page.

And because web servers are computers, web sites can often run applications written in computer code that do things, a lot like the programs that run on our own personal computers. Some of these applications are quite simple, like site search engines that let us find the page we want within a particular site. Some are quite sophisticated, like Gmail, or an online photo editor.

Anyone can write the HTML of web pages and even the computer code of web applications using nothing more than a text editor like Notepad. But on a site with hundreds or thousands of pages, we want to be able to just change the design once and have it change everywhere. Plus, writing HTML and (especially) writing computer code in a language like PHP – these are skills. If we make mistakes, our material can look very wrong to viewers, sometimes without us knowing.

That's where a web content management system comes in.

Templating and indexing

A web content management system lets users push a button to make a new page, add things like a title and some content using controls that look a lot like Word, and then publish the result with a particular appearance using what is called a "template". Pages made with the same template usually look much the same, but the core content is different for each page. Change the template and we change the look of all the pages that use that template.

Most websites also need one or more lists - indexes and menus - of their pages. These pages change because you add new content to other pages, so it's best to update them automatically. Almost all content management systems have ways to build indexes and menus for you without you doing anything.

Managing Web apps

Most content management systems will also include a few basic tools for website users. In particular, most will let you search the site and contact the people who run it.

A really powerful content management system goes a step further and makes it easier to write all sorts of Web applications. Such a system is sometimes called a "content management framework".

Secure access

A content management system itself is almost always accessible from the Web. Because not everyone is allowed to edit a site's web pages, a content management system (CMS) usually asks users to "log in" by entering a username and password into a particular web page. Then users can create and edit pages. A good CMS has strong security measures that make it very hard for unauthorised users to get around this login system and change ("hack") a website.