Is een headless CMS iets voor jou?

Development

Geert van Soest

Backend Developer

Geert van Soest

Backend Developer

In eerdere blogposts hebben we al benoemd van welke systemen en frameworks Exitable “fan” is. In het kort: Drupal, Craft CMS en Laravel zijn de PHP oplossingen waar wij veel en graag mee werken. Drupal en Craft CMS voor “traditionele” websites, met een ingebouwd CMS (Content Management Systeem) zodat deze te beheren is door de klant. Laravel voor maatwerk webapplicaties. Helaas voorzien deze oplossingen niet altijd in de klantvraag.

In dat geval gaan we op zoek naar een geschikt alternatief of we bouwen zelf iets from scratch. In sommige gevallen is een “combinatie van” de juiste oplossing, bijvoorbeeld als we een beheeromgeving bouwen die losstaat van de webapplicatie of -site. We bespreken dan van een headless CMS:

A headless content management system, or headless CMS, is a back-end-only content management system that acts primarily as a content repository. A headless CMS makes content accessible via an API for display on any device, without a built-in front-end or presentation layer. The term “headless” comes from the concept of chopping the “head” (the front end) off the “body” (the back end).”

Voordelen van een headless CMS in de praktijk

Voordelen voor jou - als klant

  • Content centraal beheren
  • Multi platform distribueren
  • Geen contentmigratie meer nodig bij het vernieuwen van je website
  • Geen contentcreatie meer nodig bij het toevoegen van een app, platform of website

Één van de voordelen van een headless CMS is dat je de content centraal beheert, maar deze vanuit daar - via een API - kan distribueren naar verschillende kanalen. Bijvoorbeeld naar een website én smartphone app. Heb je meerdere kanalen, waarover je grotendeels dezelfde informatie verspreidt, dan maakt een headless CMS je leven makkelijker! Aanpassingen maak je op één centrale plek en is overal onmiddellijk toegepast.

Voordeel voor ons - als developers

  • De voordelen van het ene CMS combineren met het andere front-end framework
  • Duidelijke(re) scheiding van verantwoordelijkheden
  • Software updates zijn minder risicovol

Misschien ben je - als developer - gewoon helemaal weg van het CMS achter Drupal, met zijn vele ingebouwde functionaliteiten. Maar vind je de code achter de front-end omslachtig en niet fijn werken. Dan kun je ervoor kiezen om Drupal in te zetten als headless CMS en de front-end te bouwen in een framework naar keuze, zoals Vue.js.

Met een gescheiden back-end en front-end zijn ook de verantwoordelijkheden duidelijk verdeeld. Zeker als je met een externe partij samenwerkt aan de ontwikkeling van één project kan dat prettig zijn. Bij een headless CMS zorgt de back-end voor het contentbeheer en -distributie (via een API) en verzorgt de front-end de presentatie daarvan. Bij een “traditioneel” CMS is dit vaak meer in elkaar verweven.

Websites die Exitable ontwikkelt, worden na livegang op regelmatige basis van (security) updates voorzien. Hebben we bijvoorbeeld een maatwerk module in Drupal ontwikkeld, dan moeten we die na zo’n update altijd uitvoerig testen om er zeker van te zijn dat alles goed blijft werken. Bij een headless CMS heb je daar minder last van, omdat de front-end - die vaak grotendeels uit custom code bestaat - losstaat van het CMS. Een nadeel is wel dat je de (composer) libraries voor de front-end applicatie afzonderlijk moet updaten.

Voorbeeld van een headless CMS

Een klant vroeg ons om een lichtgewicht applicatie te maken die ze op hun bestaande website kunnen implementeren. Dit resulteerde in een maatwerk oplossing, waarvoor de producten en bestellingen beheerd kunnen worden in een headless CMS, gebouwd in Laravel. Dat was de sample tool van Rockpanel. Later volgden ook andere applicaties: een referentie locator en gevel configurator. Omdat al deze applicaties worden beheerd vanuit hetzelfde CMS en putten uit dezelfde database, kan informatie heel eenvoudig “aan elkaar geknoopt” worden. Informatie zoals de beschikbare producten per land, hoeft maar op één plek bijgehouden te worden.

Iets vergelijkbaars deden we voor Grodan, waarvoor we een progressive web app bouwden die via een headless CMS te beheren is.

De techniek achter een headless CMS

Als het goed is weet je inmiddels wat een headless CMS is, hoe het werkt en hoe je het in de praktijk kunt toepassen. Maar wat gaat er dan schuil achter een headless CMS? Daar is helaas geen eenduidig antwoord op te geven.

Zoals je bij het bouwen van een “normale” website de keuze hebt uit tientallen systemen -  zoals Drupal, Craft CMS, WordPress en Joomla - geldt dat ook bij het bouwen van een headless CMS. Afhankelijk van de wensen van de klant bekijken we per project welk systeem we het beste kunnen inzetten.

Wil je met meerdere gebruikers, met allemaal hun eigen rollen en bevoegdheden, in het CMS werken voor het beheren van een meertalige website? Dan kun je wellicht gebruikmaken van het krachtige CMS achter Drupal, met zijn ingebouwde rollenbeheer en meertaligheid. 

In het geval van Rockpanel en Grodan kozen we voor een headless CMS op basis van Laravel, met een admin thema voor de gewenste look-and-feel en gebruikersgemak. In beide gevallen hoeft er maar een kleine hoeveelheid content beheerbaar te zijn, waardoor het kiezen van een standaard CMS al snel tot een “overkill” aan mogelijkheden zou leiden. De huidige systemen zijn simplistisch en minimalistisch van opzet; de klant zal niet verdwalen en heeft alleen toegang tot de broodnodige (beheer)pagina’s.

To headless CMS or not to headless CMS?

Zoals je gelezen hebt zijn er dus nogal veel afhankelijkheden om rekening mee te houden. Een headless CMS heeft vele voordelen, maar je moet dan dus wel heel goed gestructureerde data hebben. Een developers dream! Wil je eens sparren over de mogelijkheden voor jou? Maak vrijblijvend een afspraak voor een kop koffie en ik denk graag met je mee.

Excited?

Ons eerste gesprek is sowieso vrijblijvend - en we garanderen dat je op z’n minst met flink wat inspiratie op zak wegloopt. Zin in koffie?