Skip to main content

A Content Management System, CMS, can be difficult to install when you have to create a database. The Bludit flat file CMS removes the database complication by using flat files.

The Bludit flat file CMS, https://www.bludit.com/, stores data in flat files using the JSON format. The latest update on Github is 9 months old, showing a less active development.

The Bludit 3.16.2 download, bludit-3-16-2.zip, is a 2.7 MB .zip file that expands out to 8.2 MB containing 880items.

You copy the download code into a basic Apache/Nginx virtual Web site on your notebook computer while waiting for your latte at the beach.

There are lots of reasons to use Bludit on very small files and lots of reasons to not use Bludit if the Web site will expand to many users or many pages.

License

Bludit uses a MIT licence which means you can copy Bludit too create whatever you want without mentioning Bludit. A CMS based on MIT or BSD is rare. Bludit could be a good starting point except for the old style code.

PHP

Bludit requires the minimum of PHP 5.6, which means it is ready for PHP 7. PHP 5.6 is no longer supported in any way so use a minimum of 7.4.

Unfortunately the code has old ideas from old versions of PHP. They need to jump up to 8.1 as the minimum to get security fixes during 2025 then plan a release based on PHP 8.3 for full support.

A simple class autoloader without the stupidly complex Composer rubbish would be my first step. All the changes are just too much for a fast development plus for most sites you would need a selection of the add on modules and they would need changing.

Javascript

Javascript is a painful part of many Web sites. We try to protect ourselves from Javascript by using Noscript, or an equivalent, in our Web browsers. Most things in Bludit work without Javascript for regular visitors. Administrators need Javascript for content editing. Bludit includes jQuery and Bootstrap libraries for use by themes and plugins such as Lightbox. The documentation includes an example of adding Uikit.

jQuery used to be a useful add on for making some features faster. Now jQuery is a monster. You have to stick with a very old version or write you own code. Bludit should stop loading jQuery automatically and use only small efficient Javascript code on regular pages.

Languages

Bludit arrives with many languages ready for use during installation.

Plugins

There are many plugins supplied in the download and many more available for download. One supplied plugin provides the TinyMCE editor. You can deactivate that plugin and activate the SimpleMDE plugin to get a Markdown editor. There is no mention in the online documentation of how you might use CKEditor or one of the other options. Over in the Plugins download page, there is a CKEditor download.

The optional plugins include a broken link checker, a preview for draft content, stats, comments, Lightbox, contact, Google maps, and dozens of other things. With the right mix of add-on modules, you are close to a basic Drupal installation.

Themes

The supplied themes are ok and there are many more themes you can download. I did not test any of the downloadable themes.

Content

Content is in pages that can be a "regular" page or a blog post. They can stick to the home page, can be ordered by date, held in draft mode, and scheduled to appear on a date or time.

A page is stored as a text file named index.txt in a directory named after your page. Page Test became test/index.txt. There is also an entry added to a PHP file. By the look of the small test, a large Web site would load a giant PHP code file listing every page. That could only work with the PHP code cache storing the compiled version of the code.

Some of the stuff in the PHP code file, described as a "database", should be connected to the page or to the admin code, not stored for all regular page accesses. Some of these little design decisions will limit the practical size of a Web site based on Bludit. Upgrading PHP to PHP 8 will improve performance. Upgrading the code to autoload only when needed is the next step.

Installation

  1. Create a standard empty Web site in Apache or Nginx. I use the domain bludit.local and add the domain to /etc/hosts.
  2. Download Bludit.
  3. Expand the downloaded file into the empty Web directory.
  4. Visit bludit.local.
  5. Select the language.
  6. Add as password to the admin user.

Done.

Tags: