Wat is een headless CMS?
Er zijn drie manieren waarop je een Drupal website kan opzetten: traditioneel, headless en decoupled. De out-of-the-box ondersteuning van Drupal biedt ondersteuning voor alle drie deze architecturen. Dat is wat het Drupal CMS zo krachtig maakt.
Traditioneel: Standaard wordt Drupal, zoals afgelopen jaren gebruikelijk, opgezet als traditioneel CMS, ook wel coupled CMS genoemd. De content beheer omgeving (back-end) is direct verbonden/gekoppeld aan de presentatielaag (front-end). In deze opzet is Drupal zowel verantwoordelijk voor de back-end als front-end. Content wordt aangemaakt in Drupal en middels Drupal code en templates wordt die content aan bezoekers gepresenteerd.
Headless: Bij de opzet van het Drupal CMS als headless omgeving wordt back-end en front-end van elkaar gescheiden. De term ‘headless/API-only’ betekent dat de omgeving wordt opgezet als content repository en middels een API content kan worden aangemaakt, beheert en uitgelezen. Het heeft geen front-end, ook wel head genoemd. Drupal is bij een headless CMS opzet niet verantwoordelijk voor de presentatielaag (front-end).
Een headless CMS ontsluit content onafhankelijk van context, omgeving en kanaal. Het is een centrale opslag van content, waardoor er sprake is van een waarheid van content(single source of truth (SSOT). Dat wil zeggen dat er bijvoorbeeld 100 kanalen gebruikt kunnen maken van de openingstijden data, ontsloten door een headless CMS, waardoor overal en te allen tijde de juiste en laatste informatie wordt getoond. Een headless omgeving heeft verder geen enkele interesse of invloed op hoe en waar die content wordt gebruikt en gepresenteerd. Het levert content en meer niet. Met behulp van een Javascript framework zoals Angular of React wordt de presentatielaag (front-end) in code specifiek per omgeving samengesteld en van juiste context voorzien.
Redacteurs en marketeers willen vaak invloed uitoefenen op de uiteindelijke presentatie en positionering van content. Terwijl in een traditioneel CMS dit via een beheer, gekoppeld aan de front-end, gebeurt moet bij een headless CMS een developer worden ingeschakeld of moet aan elke presentatielaag een eigen beheer interface worden gekoppeld.
Decoupled: Drupal als decoupled CMS is al het ware een tussenvorm, het is een beetje van beide. Wanneer gesproken wordt over headless wordt vaak decoupled bedoeld, zeker in de combinatie met een CMS als Drupal. De keuze voor een content management systeem als Drupal wordt namelijk over het algemeen gemaakt om content te beheren. Minimaal wil je dus de presentatielaag behouden voor het beheren van content. In diverse situaties is het zelfs wenselijk om Drupal ook verantwoordelijk te maken voor de presentatielaag van de website en daarnaast je content via een API te ontsluiten naar andere kanalen.
Wanneer we spreken van een gedeelde ontkoppeling (scheiding front-end & back-end), waarbij we bijvoorbeeld content uit verschillende back-end systemen aggregeren maar door Drupal laten presenteren, noemen we dat progressively decoupled.
Binnen een decoupled Drupal omgeving wordt de content dus beheerd in het Drupal CMS, maar moet de presentatielaag (front end) content via door Drupal CMS beschikbaar gestelde API ophalen en presenteren aan de bezoeker. Dit is het grote verschil met headless: Je beschikt naast een API ook over een presentatielaag en hoeft daarom niet alles zelf te bouwen.
Drupal headless-first/API-first
Drupal is geen API-only, maar een API-first of headless first CMS. Drupal gaat in de architectuur en ontwikkeling eerst uit van een volledige werking met API, maar levert out-of-the-box een ook een traditionele (coupled) presentatielaag. Op die manier kan er gekozen worden voor een gekoppelde front-end, met extra mogelijkheden voor redactionele gebruikers, of voor het zelf bouwen van een maatwerk presentatielaag met een Javascript framework als Angular of React.
Dit is wat Drupal ook zo krachtig maakt, de keuze om een omgeving traditioneel, headless en decoupled op te zetten. Kies je nu voor Drupal in traditionele opzet, dan wordt de optie voor headless of decoupled niet uitgesloten en kunnen in een later stadium, wanneer de business daar om vraagt, andere kanalen van content worden voorzien via de Drupal API. Drupal limiteert je niet tot een gekoppelde (coupled/traditioneel) aanpak, maar ook niet tot een ontkoppelde (headless/decoupled).