I recently wrote an extensive article about a headless CMS. I discussed the pros and cons of building a headless and listed some considerations you should take into account when deciding whether headless is right for you.
Today I want to focus on why you should really consider Drupal if you need a headless CMS.
Headless CMS space is growing
The headless CMSes space is exploding in recent years. This is mostly due to 2 factors:
- The publish once, push everywhere idea which is adopted along with the rise of the Omnichannel brand presence and the advent of Digital Experience Platforms. Content now has to be distributed via all the channels in which Drupal is present.
Both these movements are helping the headless CMSes thrive. This happens in 2 ways:
- The existing CMSes are adopting to the headless approach. This happened with Drupal API first initiative and inclusion of JSON:API and services modules into Drupal core. WordPress followed along with making the REST API available.
- New entrants to the market, which are focusing only on providing the headless version. These are both – open source and proprietary solutions or mixtures of both worlds.
As a product owner, you have a plethora of options to choose from. It might be difficult to drill down and make the right decision. If I were to recommend the options, I would suggest going with Drupal most of the time. Here is why.
Drupal is mature and is a fully ready headless CMS
If you intend to invest in a headless CMS that will power your websites for the foreseeable future, you have to select a solution that is stable and solid. One which has a clear roadmap of development and will be still relevant and supported in years to come.
Drupal has started the API first initiative years ago and the community was working very hard to get it done. The Services and JSON:API modules are now in Drupal core. They receive the full support of the core project team. You can be sure that they will be available with each drupal release and that they will be working correctly.
Drupal itself is a very mature CMS. Powering over 1 million websites it is backed by a large community of developers. If you chose Drupal you get an enterprise-level solution which will be well supported in the future.
The contrib space offers a massive amount of modules which extend the base functionality. You can build very custom solutions just by combining already existing code, without having to write too much yourself. This is a huge benefit compared to other, less popular solution on the market.
For more information about drupal benefits, check out the why Drupal page.
The REST API is ingrained into Drupal
In Drupal, the REST API is not an addition plastered on to Drupal as an add-on. The APIs are deeply ingrained into the CMS. Interacting with the API is the same as interacting with the CMS via the browser. This brings magnificent benefits:
- All the Drupal goodies work out of the box. The fine-grained permissions mechanisms, the workflows, relations, processes etc are executed in just the same way if you request data via API or try to access it via the frontend.
- All modules which extend Drupal, will work with services (if they are applicable of course).
- You can create your own modules and they will work the same way for the headless part of the CMS and for the frontend part.
Thanks to deep integration, the REST APIs are extendable and the way they work can be altered. The best example is the JSON:API extras module and the services module. These both are great examples of how much power the developers have over how they want the APIs to operate. These are of course just examples. Your development team will be able to tailor Drupal to your needs.
JSON:API module is JSON:API compliant
It is worth mentioning that the JSON:API provided by Drupal strictly follows the JSON:API specification. Thanks to this, any developer familiar with the standard can very quickly start working with the API without having to learn a lot of Drupal.
But I want GraphQL
Here you go. The GraphQL module from contrib allows you to expose graphql schemas from Drupal. The module is used by over 1000 websites. It is thoroughly tested by the community. This is another example of how mature Drupal is. Even a solution which is not “the default one” gets a massive amount of usage, testing and support.
Great tutorials and examples
As with every large community, and especially the Drupal one, a lot of effort is put to educate and help new users onboard. Drupal boasts of a fantastic and very vibrant community, which is always ready to suggest solutions and lend a hand.
When it comes to the headless approach to building a CMS this is the case in particular. There even is a Drupal distribution built to be an API first, headless CSM. It is called contenta CMS. Contenta is an interesting starting point for building a headless Drupal. It is also a fantastic repository of examples and approaches to real-life requirements. The contenta GitHub account is full of examples in practically any available frontend technology.
Vast vendor support
Last but not least, it is important to be sure that your headless CMS can get the support it needs. Drupal stands out here as well. With a wide selection of drupal agencies which provide drupal support, you will always be able to find expertise to run build and maintain project. If you choose a inch, new solution, the number of vendors will be limited and so might be the expertise.
If you are about to invest in a headless CMS, you should choose a robust, stable working solution with great support and flexibility. Even though there are many options out there, the majority does not offer the guarantee of stability and predictability, because they are too young.
Drupal stands out as the robust flexible, API fist solution with a mature community, predictable release cycles, a plethora of contributed modules and a clear vision into the future.
Drupal should at least get to the shortlist of the options you are considering.