CMSimple XH-Logo 

CMSimple_XH - file-based - CMS - development history

The XH-Story

The history of CMSimple_XH

Here is a short history of CMSimple_XH.

CMSimple – The Origin


At the turn of the millennium, Peter Harteg, a Dane, began to program a minimalistic content management system for friends - first in Perl, then in PHP.


On April 10,2003 he released his system under the name "CMSimple 1.0". It only contained 20 KB (!) of code. CMSimple could be used free of charge if you added a visible link to Harteg's website. If you didn't want to do that, you had to get a license.

CMSimple saved the entire text of a website in one single HTML text file (file-based, flat file). Of the six heading levels provided in HTML, Harteg reserved the first three for dividing the website into separate pages, leaving only the remaining three for normal headings within a content page. The software was simple and did not require a database. The installation on a web server consisted only of uploading the CMS and the content file, and possibly assigning write permissions.


The system went through many versions until the momentum faded after 2006. Harteg finally allowed the system to be further developed with a modified name (according to the scheme: "CMSimple_[additional]"). This is how a number of forks of the system were created. On 1.1.2010 Harteg placed CMSimple under the GPL3 license, which removed the link obligation. Harteg has released a last version (3.4) after that, in which some security flaws have been fixed.

XH – The further development


The development of CMSimple_XH began in 2009 by a small group of CMSimple enthusiasts. In December 2009 they released "CMSimple_XH 1.0".

The _XH addition was chosen because the system could generate HTML and XHTML-compliant web pages. XHTML played a certain role at that time.

XH combines the simple basic concept of CMSimple with the requirements of today's CMS. You can now easily install extensions and much of what used to require complicated scripting can be done via the menu.

Under each heading that creates a new page, a PHP programming statement follows. There, a variable list contains instructions for displaying the page, such as whether an alternative template is to be used or whether the page should even appear in the side menu. The list is actually longer, and you can add any number of variables for self-selected functions.


With version 1.7.0, significant limitations of the system have been removed.
The most important and striking change with this version is the new page splitting.
The conjunction of headings and menu structure is no longer necessary. Now all headings (H1 - H6) can be used in the content. This means that a SEO-compliant heading structure (without additional workarounds) is now possible.

What happened to the old system?

The old system was available for download on Peter Harteg's website until November 2012. Then he sold the name "CMSimple" together with the associated websites and old code to Gert Ebersbach from Berlin. The latter now offers its own system under the purchased name. However, this is not based directly on Harteg's original system, but on CMSimple_XH 1.5.3.

The original CMSimple 3.4 is available in its archive: CMSimple Archive »

In Denmark, the country of origin of CMSimple, Preben Bjørn Biermann Madsen has kept the old 3.4 version alive and offers it with security enhancements called "CMSimple Classic": CMSimple Classic »

The original CMSimple should not be used today because of security vulnerabilities.


… on the development and history of CMSimple (_XH)

Differences between CMSimple_XH and CMSimple 4.x
(July 2014) The translation of a German article by Holger Irmler in the forum, which shows the differences between CMSimple_XH and CMSimple.