Content management Systems — CMS
We started looking into CMS to figure out what makes sense for us to use for certain use cases. Here is my take on CMS in general. To state the obvious, micro-services concept is the future of web architectures.
What is CMS?
A Content Management System(CMS) is a software that helps us to manage content. Content can be in the form of text, images, movies, links or any data. When choosing a CMS, make sure that your team and developers are familiar with the programming language and the database that the CMS uses. This is very important as there will be a need to customise the backend to suit your needs. A CMS consists of 2 parts
CMA — Content Management Application — This application lets users to manage content that could be later integrated with your website.
CDA — Content Delivery Application — This application takes the information from CMA and publishes to the website.
I would like to break down the CMS overview and selection process into there categories
1. CMS can be categorised into Coupled or DeCoupled (Headless CMS)
A headless or Decoupled CMS works purely on an API basis. It usually provides a HTTP REST with JSON interface and it doesn’t care on how the content is displayed. This is very useful if you want to focus on your front end developers using the responsive or other RIA technologies to build websites that leverages better user interactions on your site. Another key area that leverages this CMS is Mobile Apps
Headless Frameworks
Headless WordPress: WP plus JSON API plugin
Headless Drupal 7; RESTful module or Drupal 7 + RESTful Web Services module
Contentful, the API-first content management backend designed to be responsive (Paid)
Inguenix (ASP.NET)
Django Rest Framework wth Django Web Framework
Prismic
CloudCms (Paid)
Builtio
Cosmicjs
Hippo CMS — offers contextual and behavioral trend analytics on web content and helps you create expriments to A/B test content and layout
Osmek
Genetics Mesh
Directus (Open Source and Paid hosted version)
ContentStack (built.io)
The traditional Coupled CMS are useful as it doesn’t require complex programming and relies heavily on the UI provided by the CMS to author the content by non programmers. One of the drawback of this CMS is that the front end developers are coupled with the CMS technology to make edits, and are restricted by leveraging RIA or other responsive technologies in a better fashion.
Traditional CMS Frameworks
LifeRay
OpenCMS
Alfresco community edition
Wordpress
Drupal
Joomla
Expression Engine (Paid)
Text Pattern
Contao
SilverStripe
Umbraco
Concrete5
CushyCMS (Paid)
Radiant CMS
Alfresco
2. Open-source vs Paid
This section is very clear. With the Paid version of CMS you get support by dedicated support folks and will guide you or help in the implementation and support. The open source on the other hand is widely used and has a good network of people working and supporting it.
3. Language framework that it supports
You have a few popular areas of technology platforms and database that it supports (MySQL, PostGres, SqlServer, Oracle etc…)
PHP
Java
Ruby
.NET
What are some of the key questions that needs to be considered before the selection process
The complexity of your content and how they interact with each other
How will your users interact with your content?
How many users are authoring the tool and do you need complex roles and responsibilities.
Do you need training and how do you plan on training your folks who use this CMS
Is there a Support Community for the CMS?
How much does it cost?
My Observation and Recommendations
When or why do we use Headless CMS?
If you are planning on using Javascript MVC framework
If you want content to be used across devices (mobile apps, tablet, desktop)
Here are my picks worth trying out and having a better chance of success.
Headless CMS
Contentful — Paid
Drupal with Headless API — Free
ContentStack from built.io — Paid
Hippo — Java based CMS
Prismic.io — Paid
Traditional CMS
Drupal — if you have a complex setup that needs PHP platform — Free
Wordpress — If you simple website where Technical experience is not necessary — Free
Alfresco if you need a java platform — Community edition is free or Paid version available too
Disclaimer: I used lot of the information available across the community to compile this together. I have listed some of those sites below