— a small modular open source CMS without database

general. Information

Basic features

Version check, structure organization of user files, plugin manager, maintenance mode, admin template, etc. are either part of CMSimple_XH or available as external plugins.

Code base

Although CMSimple_XH is originally based on Peter Harteg's old CMSimple, starting with CMSimple_XH 1.6 the first steps to a new code base according to modern standards were made. Large parts of the code are now organized in classes, enabling automated tests, and providing increased reusability.  The full source code has been documented to help interested (plugin) developers getting started. Moreover, backward compatibility has been realized mostly without exception.

Data storage

All CMSimple variants store the contents (texts) of the whole website in a single HTML file (content.htm), from which the individual page contents, the structure of the website and the navigation is generated automatically. CMSimple_XH had from its beginning the possibility to store page related data in another file (pagedata.php). Thus things, which formerly were cumbersome and required cryptic script code, could be done easily through clicking check boxes and option lists. Examples are assigning another template for a particular page, hiding a page from the navigation or using another page heading as shown in the menu.

This concept however had a weakness: content.htm and pagedata.php had always to be kept in absolute synchrony. Desynchronized files caused some problems. The reason seem to have been incompatible or faulty extensions, or incorrectly restored backups by the user.

In CMSimple_XH 1.6 all data, also the page related data, are again stored in a single file (content.htm). That facilitates easy backups, and advanced users can edit the contents offline or online.


In CMSimple_XH many modules are realized as discrete plugins, which can be updated individually. Often they are developed and maintained by different persons. When new versions for individual modules are available — this will be recognized by the automatic update check — the site owner is able to update the modules him/herself. Unnecessary modules can simply be removed.


While reprogramming CMSimple_XH the topic "security" got a particular focus. Especially the protection of the admin mode has been considerably improved, old XSS vulnerability have been fixed, and a comprehensive protection against CSRF attacks has been added, which can be used by plugins.


CMSimple_XH uses in the administration area, checkboxes or select lists for configuration settings. External plugins also can use this feature under XH without any changes to the program code.

Modifications of the page settings are stored via Ajax under XH. This way, the page doesn't have to be reloaded after each change. The same holds for the update check, which doesn't block the site during retrieval of the version data.

In XH saved backups can be restored with a few clicks.

If the site owner has forgotten his password, there is a "Password forgotten" feature that allows to send a new password to the site owner, if he has enabled this feature in the configuration — by entering an email address for this purpose.

Development / Community / Orientation

Since quite a while CMSimple_XH is maintained by four developers who are actively contributing program code for new versions. New ideas or changes are discussed in the forum in advance, and eventually gathered in an publicly available roadmap. This roadmap serves as base for the final voting for the developers about the planned modifications.

By means of the roadmap everybody who is interested is able to see what is planned for the next versions by the developers. The latest status of the development is always publicly available via SVN on Suggestions, ideas and concrete solutions from the community are always welcome and can be contributed in the "developer forum". Also, potentially resp. actually existing bugs in CMSimple_XH are communicated frankly in the "bugs forum". The orientation of CMSimple_XH is clearly a "community project".