CMS

How to choose the right CMS?

Client has a small budget and is ok with some cookie cutter page design? Wordpress might be great, especially when the client moves on with their site and you don't have to maintain it. At the same time you contribute to the internet monoculture that Wordpress is. Messing around with Gutenberg or worse some 3rd Party site builder that came with a theme, might drives you insane.

If it's truly a small page that your client won't touch or that you setup to help someone out, Pico CMS is a perfect lightweight option (if you enjoy writing some HTML/CSS and Markdown)

If you develop a web app and not a document based website, then a headless CMS or just Google Sheets or Airtable is the right choice. Build the application with a framework like Fatfreeframework, Lumen or SlimPHP and pull in data from a Headless CMS like Cockpit oder Directus. Directus might be the right choice if you already have data in a mysql db, to work with.

For an all in one approach which might be questionable, the Fuel CMS/Framework might be a good choice. It's extremely powerful to extend the normal CMS capacities with your own database management modules/Admin Panels. You can connect to many databases, user management (even if centered around the CMS) is on board, site preview and in-page editing. It's based on Code Igniter which is popular enough to extend everything easily. The downside here is, that the backend feels dated. Powerful, but quite dated. Some of the framework codebase is dated as well. At this point I wonder if a Laravel based CMS like October CMS might be a better choice?

Flat-File CMS

Reads a bunch of markdown files in a directory. No need for a database.

πŸ“„ Pico CMS

  • great for smaller sites where you just write html for content, but with the benefit of a templating system
  • Create data fields on the fly in yaml while editing
  • Super smart plugin system where you can hook-in to every step during the rendering process. Absolute fantastic.

πŸ“„ Kirby CMS

https://getkirby.com/

  • Commercial (99 EUR v3)
  • Beautiful Backend (Panel)
  • Field Definitions (Blueprints) in Yaml
  • Optional Database
  • Small footprint
  • compatible to Laravel (Eloquent ORM, Blade Templates)

πŸ“„ Statamic CMS

https://statamic.com/

  • Commercial (250+ EUR v3)
  • Beautiful Backend (Panel)
  • Field Definitions (Blueprints) in Yaml and via web interface
  • Optional Database
  • easy to work with in Laravel
  • Resource hungry

πŸ“„ Grav CMS

  • nice for blogs
  • tons of extensions
  • interesting concept with templates (to create _subpages that become one page, like content parts in phpwcms)
  • slow on windows
  • too technical for clients, with all the fields

Headless CMS

Database driven, comes with a backend/database admin, but no frontend templates, just JSON.

πŸŽƒ Cockpit CMS

A self-hosted headless and api-driven CMS

[[CMS - Cockpit]]

https://getcockpit.com/

  • Really easy to setup
  • Sqlite or Mongo DB (MySQL (from v5.7), PosGres Extension is available)
  • Collection (data object/data table) with many different fieldtypes (text, wysiwyg, markdown, bool)
  • Database Schema is JSON based
  • JSON config for fields
  • live JSON preview of data
  • Create forms from schema
  • Beautiful Interface
  • API First
  • Lack of documentation, but lots of solutions can be found in their forum.

Useful for

  • smaller websites and apps

πŸŽƒ Directus CMS

Directus is an open-source tool that wraps custom SQL databases with a dynamic API, and provides an intuitive admin app for managing its content. Self-host for free, or use our on-demand Cloud service to manage all your omni-channel digital experiences.

https://directus.io/ https://demo.directus.io/

Con

  • Multilingual fields are rather complicated to setup and require One 2 Many relationships and forces a certain form layout, since translations are all grouped.
  • Build chain required for extensions/custom field types
  • System crashes at obscure MySQL field types like POINTS (as of v 8.8.0)

πŸŽƒ Airtable, Google Sheets

Google Sheets, together with Google Forms can be the most simplistic form of a Headless CMS. Useful for presentation of data or a simple news section.

Airtable is a way nicer for data entry, has more and richer field types and can be much more useful than an xls spreadsheet. The API needs some form of caching though. A proxy, like a php script that saves the API response for a minute or more is needed.

The API is limited to 5 requests per second per base. If you exceed this rate, you will receive a 429 status code and will need to wait 30 seconds before subsequent requests will succeed. -- https://airtable.com/appqnJSNfndYcIMS4/api/docs#curl/ratelimits

CMS CMS

Traditional CMS with Database, Backend and Frontend.

πŸ—ƒοΈ Fuel CMS

  • Tech stack is a bit ancient (based on Code Igniter und Pjax (Backend)) and there are too many ways to do things that are more or less documented. It's also a config hell with 1000 options that are not immediately clear.
  • Complex Formbuilder (script based) and Database Admin
  • Multilingual out of the box
  • Standard CMS Functionality and Complex Custom Modules
  • Backend very extensible with content preview and whatnot

Despite the fact the tech stack is a bit old, it comes without build processes for new backend modules or interfaces which makes it much easier to maintain.

Also, the development of the core is in one hand and quite slow. This guarantees a stable product and not an update hell with all the complications of migrating and breaking changes. Security fixes are available, that's no problem.

I'd say Fuel CMS is feature complete in its functionality. There are a few 3rd party modules, which is good. It doesn't lead to an extension directory of 5000 modules to try and get in trouble with. You develop them by yourself and only what you need.

πŸ—ƒοΈ Processwire

https://processwire.com/

  • good for listings like real estates, products
  • nice image/media handling
  • flexible fields
  • No table representation of the data (just a tree)
  • Some important plugins (Formbuilder) are commercial

πŸ—ƒοΈ Craft CMS

https://craftcms.com/

Commercial.

πŸ—ƒοΈ Wordpress

The Golden Calf or a "Egg-laying-Whool-Milk-Pig" Behemoth - depending on the side your are standing on.

Pro

  • almost every niche problem can be solved by a plugin
  • tons of themes to choose from
  • Taxonomy is great if you want to classify stuff
  • Gutenberg Block Editor is really nice
  • Automatic updates
  • GDPR safe
  • Extension/Overwrites via Child-Themes is pretty easy and smart

Con

  • Stay away from themes with third party page builder plugins. There are a few lightweight ones, but WPBakery is absolute garbage. Gutenberg all the way if possible
  • With a few extensions it's getting slow fast and the optimizer plug-in are just adding extra weight
  • Annoying subscriptions to Pro Plugins and Themes
  • All themes come with 5 GB Revolution Slider that you can't update if you don't want to buy it (Same for those Page Builder)
  • Demo Content of bought themes always looks great, but your own... often not so, because you can't use Lorem Ipsum as you please and you have to deal with client photos that are often not professional.

ACF | Advanced Custom Fields Plugin for WordPress

πŸ—ƒοΈ phpWCMS

My favorite CMS for a long time. Started as the smaller brother of Typo3. A few clones appeared, like Typo Light, later Contao and I thought there was another one.

Today I'm not sure if I would still choose phpWCMS. It's ok to maintain older sites, but there are better tools to develop websites now.

Pro

  • trusted and battle tested
  • Unique concept of content parts unlike wordpress which is one big blob in a textfield
  • super fast
  • extensible (Module and frontend render scripts)

Con

  • too much old legacy code/concepts
  • complex templating for contentparts is cluncky
  • has its own template logic and replacement tags which is cluncky as well
  • filemanager is quite old as well and hard to manage many files
  • weird slugs
  • home grown routing system and database layer
  • Site data is a jungle of deeply nested arrays

πŸ—ƒοΈ ModX

https://modx.com/

Backpack for Laravel

  • pulls in 20000+ files via composer = dependency hell
  • nice interface based on bootstrap and jquery
  • many useful field types incl. tabs and
  • configuration of Models and Controller is similar to Fuel CMS but cleaner.