Content-Management-Framework "Frames CMS"

Starting December 2015, I've decided to develop a content management system from scratch. Since September 2017, it runs on this website already.

I am very well aware that "you shouldn't reinvent the wheel" - on the other hand, if all the available wheels do not fit your needs and become more and more bumpy, why not "go for it" - if your security knowledge is sufficient to protect your installation and your customer's data by using "best practice" ideas?

Which considerations fueled my design process?

Pitfalls I tried to avoid

Frames CMS is not Open Source, I use it for several customers. The mail goal of "Frames CMS" is to handle not only texts and images, files like any other CMS but to be able to display any SQL table and edit, view, delete its contents even without the need of more and more "add-ons" etc. - I wanted to be as independent as possible.


Frames CMS is a content management system that focuses more on presentation of arbitrary table data and data handling, presenting any data types from any tables. Compared to other CMSes, it may be less flexible when a certain web design should be implemented. It is written in PHP (5.6 onward) and makes use of a database engine like MySQL or MariaDB (others to follow).

Start installing Frames CMS by uploading the single install.php script to the web folder that must be publicly accessible from a browser. No other downloading necessary, ever. You may even start with an outdated version of install.php and it will update itself first and ask you to reload your browser..

Upon calling install.php, the script will check every single precondition on the webserver and if not met (like write permissions), ask you to modiify the settings, add a PHP / Apache module or ask you about the credentials of the database server, non-public folders to start hidden content and so on. It will then proceed to download, update and install all the necessary software and update itself.

All downloads are encrypted and only possible if you have a license for your given domain name.

If not present, the installer will also create the initial database and fill with reasonable defaults, create a first administration account for you. It might try to repair if certain imtem like mandatory tables and / or data fields are not present. It does this by not deleting existing data but modifying carefully.

The installer install.php contains also the upgrade capabilities of Frames CMS: Whenever you repeat the exceution of install.php, the mechanism will re-check all preconditions and update dependencies

As soon as the CMS itself is usable and running, an admin user is present, the installer will be blocked and made usable only by users with admin permissions

Created by: ande 01.01.2017 00:00, last changed by: ande 03.07.2018 20:03, 1269 hits