Headless CMS : le CMS sans tête

Authors : Alterway

headless

Non, il ne s'agit pas d'une enquête du commissaire Maigret ou d'un film de Tim Burton, mais d'une nouvelle approche du CMS (Content Management System).

La frontière entre le site web et l'application web tend, de plus en plus, à disparaître. Or si le CMS a été conçu, à l'origine, pour gérer des sites web, il est encore inadapté pour une application web. Dans une application web, il est souvent plus adapté de naviguer, au sein d'une même page, d'écran en écran, que d'aller de page en page et un CMS « traditionnel » est peu adapté à cette approche.

Qu'est-ce donc qu'un « headless CMS » ?

  1. Un backend basé sur une base de donnée et géré traditionnellement via une interface graphique.
  2. Un contenu accessible via un web service et une API (Application Programing Interface) REST (Representational State Transfer) délivrant des données dans un format de type JSON (JavaScript Object Notation).
  3. Enfin, un frontend totalement indépendant pouvant être un site léger réalisé avec un micro-framework type Silex (http://silex.sensiolabs.org/), une SPA (Single Page Application) utilisant un framework javascript type Angular (https://angularjs.org/) ou React js (https://facebook.github.io/react/), une application mobile ou tout objet connecté consommateur de données. Avantages Le travail des équipes front-end et back-end est totalement séparé, chaque équipe pouvant intervenir avec ses propres outils et environnements. Le code front peut être optimisé au maximum pour le plus grand bénéfice de l'utilisateur. Fini les empilements de « div » et les massacres qui s'ensuivent en temps de chargement, SEO et accessibilité.

Inconvénients

La perte des fonctionnalités front du CMS et la nécessité de développer un équivalent : gestion d'urls multilangue, édition in-line/in-page, etc.

Et si l'on pouvait avoir les deux ?

C'est peut-être ce qui s'amorce avec l'approche « progressive decoupling » décrite dans cet article en anglais  (http://buytaert.net/node/3436) de Dries Buytaert, le père de Drupal.

Qu'en est-il actuellement des principaux CMS ?

Drupal 7

Il est possible d'utiliser une API REST avec les modules :

RESTful (https://www.drupal.org/project/restful) ou RESTful Web Services (https://www.drupal.org/project/restws).

Drupal 8

Le module  RESTful Web Services est intégré au core de Drupal.

WordPress

Il est possible d'utiliser une API REST avec les plugins :

JSON API (https://wordpress.org/plugins/json-api/)

ou

WP REST API

Le CMS sans capacité « headless » serait-il une espèce menacée d'extinction ?

Découvrez les technologies d'alter way