Up until recently I have only worked with "standard" CMS platforms. Where you have a your website is bound to the CMS you are working with. Don't get me wrong, this is a great way of building sites. Platforms like SDL Web 8 (Tridion) and Umbraco are great examples of powerful CMS platforms, but...
...they are heavy duty and need large scaled out environments to run them. They are also, generally, bound to a single programming language, which makes them limiting.
I was looking for was looking for a way to roll out a website quickly and on a tight budget. So at that point I started looking for other options and stumbled across the concept "Headless CMS" platforms, of which there are now several. The first I came across was Prismic, which looked great. It did everything I wanted it to, but was still quite "page" based and I wanted something with a little more freedom.
So the search continued and I came across a lot of options! How had I missed this! Two others that stuck out where Contentful and Directus. This provided me with three solid options to investigate. Directus looks like a great platform and is essentially maps closely to a database with table and rows. It is open source and is downloaded and run on your own hardware. This all sounds good, but when you come to the hosted version they don't offer a free option which is one of the key criteria I was looking for.
I finally settled on Contentful for a number of reasons.
- Content is based on objects not pages.
- Localisation (which wasn't important for me, but is for lots of other people).
- Space syncing (which has allowed me to setup Continous Delivery to include syncing of my Content Models).
- GUI Extensions
- And finally, I know it sounds trivial, but the Contentful folk are really helpful and communicate really well.
Is a headless CMS the answer to all your problems?
Of course not, development is a slower process and there are drawbacks to every CMS. Contentful is the same (no rich text editor as an example), but there is no perfect CMS. It depends on the task you're undertaking. Headless CMS are strong competitors in this ever changing world of websites, mobile apps, etc.
What about the best of both worlds?
This is happening more and more. Where standard CMS platforms are adding in RESTful APIs. Allowing developers access to data without relying on their front-end platform. A good example of this is Hippo, a Java based CMS. Which is feature rich and has a library for building sites. It also has a full RESTful api if you don't want to use their library. The downside is that it isn't cloud-based like Contentful. So I would have had to organise more hosting for the CMS and DB.
Will I use a headless CMS again, yes. But I will also definitely continue to use "standard" CMS platforms such as Umbraco and Hippo as well.