Are Blogs Content Management Systems?

In my mind, there are four types of websites, with the edges pretty much blurred.

  1. Static – i.e. Brochure-ware Systems
  2. Data Management Systems
  3. Content Management Systems
  4. Blogs

I will go through each of them and show where the lines are blurred.


As the name would imply, static sites are plain old HTML pages served up by a web server. There is no user-interaction with the site, they just sit there looking pretty1. Static pages are useful for content that doesn’t change too often and needs no user interaction.

Although, even in static sites, there may be a hastily coded php form to capture customer feedback/enquires and send it off to email… some interaction but hardly interactive.

For all other uses, it is off to some sort of content management system (CMS).

Broadly speaking a CMS does exactly what it says, it is a system that manages content, the way in which it manages the content is the main differentiator.

Data Management Systems (DMS)

This is the base system for all other interactive systems, a data management system is simply a site that has some sort of storage behind it – usually a database, sometimes a file system. A DMS allows a user to interact with the site, either by entering data – e.g. feedback form, adding items to a shopping cart, searching etc.

For the display of information, each of the dynamic pages (or templates) pulls data from the database and presents it to the user, generally through the use of URL parameters. For example, the following page:

Would load up the details from the database and present the product with the primary key of ‘2’ to the user.

To change the details of the product, somebody needs to go into the database and manually update the details. Of course there may be a nice interface to do this – some sort of content management system perhaps?

The page that is displayed is a fixed template, it will only work with the product details.

Of course, there may be static pages, for example the ‘Privacy Policy’, ‘About Us’, ‘Contact Details’ may all be static. The idea here is that the data is fixed to the page (or template), i.e. the data and template are bound together tightly.

And this is where things get a little blurry. In a way this is a CMS, but it lacks a few features of a CMS which is helpful to the site administrator. In order to add new information, a new display page needs to be created by a developer, parts of the site need to defined, then coded, tested, and put live. There is a one-to-one relationship between the database table(s) and the display of the page.

Content Management Systems (CMS)

Simply put, a CMS separates the content from the display. Templates are created, one for each content type, and then content is added to them. On a relatively large site, the following templates will probably need to be created at a minimum:

  • Home Page – generally only used once
  • Article Landing Page – for a list of current articles/stories/news items
  • Article Page – the actual article
  • General Content Page – a generic – do anything page

This of course is a very brief list, in my experience, you are looking at around 10-20 different content templates for a reasonably large site, however the above list is generally included in all sites I have worked on.

Broadly speaking, there are two types of CMS.

  1. Page Based
  2. Content Repository Based
  3. Mixture (I said broadly speaking)

Page Based CMS

For each page that is exists on the site, a page needs to be created within the CMS. To edit the page, you would need to navigate to the desired location, click on the edit button and away you go (I will not go into the differences between in and out-of context based editing). The key point here is that the navigational hierarchy is manually generated through adding pages in the correct spot.

As an example, let’s say that you have 10 products that you are wishing to sell on your site. With a Page Based CMS, you would do the following:

  1. Navigate through the site to the hierarchy that you wish to add the product under say ‘Product List’
  2. Create a new page (with the appropriate page template, in this case we will call it the ‘Product Page Template’)
  3. Enter the details
  4. Workflow the page
  5. Rinse and repeat 10 times, one for each of the products.

The idea above is that for every product that you have, you need to physically create a new page, the details of the product are contained within that page only (yes, it goes into a database, but still…). To find all of the products, you need to jump through a few hoops. Yes, you could iterate through all of the children pages of the ‘Product List’ hierarchy, but this will only work if you put all of the products within this hierarchy. You may be able to select all pages which use the ‘Product List Template’. As you can see there are varying methods to do this.

The above process can be a little monotonous, constantly swapping between ‘editing’ and ‘live’ modes, navigating around the site. The second way is slightly easier perhaps.

Content Repository Based

The second method is where the content is added through an interface directly to the content repository (i.e. the database). All updates are done through this interface, and once the content has been approved, it is automatically slotted in where it needs to be.

The navigation system also manages to automatically update itself, once the content has been approved through the repository, it will be added to the navigation in the correct order.

Due to the single point of content, a user can query the repository and extract details based on parameters. For example, a side bar can be added on the home page that queries the repository and extracts all of those product which have been newly updated. In the page based model, hoops need to be jumped through to do this – and generally the ‘hoops’ need to be hard coded. Some CMSs come complete with a query language which can then be used to retrieve any of the required content, not just a specific piece which makes this job much easier.

Of course with power comes complexity (and usually price).

Vignette is one of the larger CMS that uses this model and there are other examples out there.


Some CMS allow a mixture of both the page and content repository based methods for data entry and display allowing the best of both worlds. For example, the ‘About Us’ page may be done as a page based edit as this will probably be the only ‘About Us’ page, while the product pages are best left to content repository display.

As a side note Jahia now has better support for both.


Blogs of course site somewhere in the middle. There is a content repository which is updated through the administration interface, but there are only two two template types, the ‘post’ and the ‘page’. Whilst these templates can be skinned, you are generally stuck with the templates and their layout. Which is great, for a simple blog and will generally suffice for all you blogging needs. That is until it doesn’t.

Of course with the proliferation of blogs, new ‘widgets’ can be added to the blog with weather feeds, contact forms, link management and the like. The management of these comes down to how much you trust the developer. There is no real template management within a blog.

So this is closer to the content repository CMS, without being a full blown CMS with customisable templates.


Just to confuse things a little bit more, some CMS will allow certain parts of the site (parts that do not need to be dynamic that is) to be rendered and exported as static content only. This saves processing the dynamic part of the page for something that doesn’t change that frequently – which helps to reduce server load and really is quite clever (I am looking at you OpenCMS).

Of course this sort of happens with blogs as well if you use page caching.


So, after a quick look through CMS options, there are a plethora of choices out there depending on your needs. I personally prefer a mixture of approaches, the repository based system allows the navigation to be built automatically, content to be syndicated easily both internally and externally to the site. However, this can be overkill for smaller site, a CMS also features content versioning, allowing you to roll backwards and forwards through previous version history. This is helpful when content is published that shouldn’t be, however in my experience, most content is just continually rolled forward in the event of a mistake, with newer content over-writing the incorrect version.

For those where a CMS is a little bit of an overkill – online stores are a good example – a DMS with some static content will generally suit.


This post was produced with the help of WriteRoom. And yes I am plugging this software as much as I can – if you are on a Mac – have a look at it and enter the nirvana of text editing.


  1. Taken more from the phrase ‘sitting pretty’ rather than being aesthetically pleasing
  2. note that there are SEO issues which define how the URL is made up

Like my footnotes?
Want to add footnotes to your blog?
They can be added easily to your WordPress installation

Leave a Reply

You must be logged in to post a comment.