How to make own CMS

Every day millions of new web documents emerge on the Internet, and the amount of web management tools is growing simultaneously. These tools are usually referred to as Content Management Systems, CMS for short. If you have a web site and still do not use any CMS, you will definitely face a choice to buy or to develop an enterprise content management solution in the near future. What would you do if you wanted to develop a CMS, your own software that has a WYSIWYG editor and perfectly meets all your requirements and security standards? Can this task be fulfilled? Which ROI should you expect? You will have to answer all those questions all by yourself. Your chance to success can be increased if you gain an understanding of basics of a web content management system.

There are two models of any Content Management System. For visitors, the CMS displays web site content. Let us call it a site presentation mode. In admin mode a web master or a site administrator can update content and manage structure and templates. Here we speak about the insides of the website, i.e. the web site's admin mode.

Every page of the site is a web document that has its own address. The web site is a set of such hyperlinked documents. To make the web site user-friendly links to other documents and web services are displayed in various navigation bars and menus according to their logical interconnection. That is how the site structure is created. The document structure presupposes some categories of documents, identical by their logical architecture and presentation.

So, in admin mode the CMS presents the interface with categorized documents and the interface for document structure. The former will contain web document templates determining their logical architecture and presentation. The latter, structure interface, enables to update content and add, edit and delete documents, as well as set related pages. The way your CMS assigns the document structure of your web site is up to you. The simplest and the most common way is to make a hierarchical structure tree. We all saw it in site maps. However, we should keep in mind that the web site may require another language version in the future. Accordingly, the site will lie as the root, and language versions will be its branches.

The document structure interface allows managing web document attributes (name, URI, pointer to template, etc.). An attentive reader shall ask "And what about the document contents?"

As said above, the document template determines document presentation and its architecture. So, the document is not the data. In order to get some data and then put it as content into a web document, the system needs a template. As a result, a next interface for content query can be generated for example, name field, summary field, and WYSIWYG editor for the text body and image upload field.

It is clear that presentation can be done not only in HTML, but XML also. If you use XML in templates, you can manipulate Flash documents and update Flash sites.

This article can't cover all the questions that can arise during Content Management System's implementation. When assembling a programming core for your web solution, you should be certain to think of template pointers syntax and development of other Internet services and modules. However, XML Sapiens Specification gives a detailed explanation how it works. This XML Specification is available in English and Russian at To study the example of a web content management system visit, SAPID Open Source CMS available under GNU license. You can also use it to create your own web site, all for free.