Les CMS (Content Management System) headless sont des plateformes de gestion de contenu polyvalentes qui ne sont pas fortement couplées à un langage de rendu côté client.

Ces plateformes sont généralement exploitées en tant qu'API web : généralement en utilisant des principes REST ou pour certaines en GraphQL. On utilise généralement des frameworks comme ReactJS, GatsbyJs ou VueJS pour venir consommer les données.

En utilisant un CMS headless vous accélérez votre développement applicatif tout en conservant un outil solide, pérenne et extensible.


L'architecture technique d'une pile basée sur un CMS headless

En fait un CMS headless n'est pas très différent d'un CMS classique tel que Wordpress ou Drupal. Ce qui change, c'est que ce dernier ne s'occupe pas du rendu des données et se contente de renvoyer un format digeste comme du JSON ou du XML, laissant libre le choix de l'affichage aux développeurs.

À quoi cela sert ?

Vous souhaitez créer un blog, maintenir un inventaire d'objets pour votre petite boutique personnelle, gérer de la donnée froide ou tiède depuis une interface sans développer tout un système de CRUD.

Alors vous venez de trouver l'arme ultime (ou du moins une très bonne arme) des personnes cherchant à mettre rapidement à exécution un plan pour faciliter leurs développements.

Mais alors qu'est-ce donc exactement ? Comment ça se présente ?

Le socle de base d'un CMS permet de gérer des types de contenus.

Un type de contenu, c'est un regroupement de champ de différents types (texte, nombre, date, image, relation de contenus, …)

Bref ! Une fois que vous avez vos types de contenus, vous pouvez créer, éditer, lister et supprimer tous ces contenus directement depuis un back-office ou en utilisant l'API web de la plateforme, c'est ça de moins à programmer pour vos développements.

Pourquoi utiliser un CMS headless pour gérer ses contenus ?

Entre autres :

  • C'est assez récent et cela va avec la tendance des framework javascript modernes.
  • Vous pourrez exploiter les données à de multiples endroits sans grandes difficultés (application mobile, site web, panneau publicitaire dans une gare, …) avec un format polyvalent tel que le JSON.
  • Vous évitez la gestion des tâches répétitives telle que la création des CRUD.
  • Facilement extensibles, ils peuvent vous permettre de réaliser des interfaces avancées pour gérer vos contenus.
  • Ils sont généralement plus performants que leurs homologues fullstack, n'ayant pas besoin d'effectuer des calculs de templating HTML. D'ailleurs comme ils n'ont pas besoin de garantir la maintenance sur ces fonctionnalités vu qu'il ne les développent pas, les développeurs peuvent mettre plus d'effort sur leurs cœur de métier et les tests liés.

Quel environnement et comment ça s'installe ?

SAAS (Software As A Service) ou « On Premise » (chez soi, sur lieux) on peut selon notre budget et nos compétences se passer de la maintenance technique de ces outils et la déléguer à des prestataires externes.

Par exemple Contentful vous offre moyennant une compensation financière une plateforme auto-gérée disponible en un clic. À contrario, Strapi est lui open-source et « on premise », c'est à vous de l'installer et de gérer l'infrastructure, la sécurité et les sauvegardes. Par contre vous êtes plus libre sur la personnalisation étant donné que vous avez le code.

Comparaison de deux CMS headless : SAAS vs « On Premise »

  • Strapi mon préféré, grandit très vite et est vraiment superbe. Entièrement composé de Javascript, vous pouvez très simplement l'étendre. Disponible à l'heure où j'écris ces lignes uniquement « on premise » il est gratuit, open-source et très performant.
  • Contentful : excellent, performant mais extrêmement cher… Je ne le recommanderais que pour les personnes ayant un budget vraiment à l'aise et qui veulent aller très vite sans trop se poser de questions. Tous les détails techniques sont cependant gérés par les équipes techniques du prestataire.

Expérimenter d'autres outils ?

Côté PHP API Platform basé sur Symfony (PHP) permet de créer rapidement une API, on peut également générer un back-office très rapidement ce qui le transforme en CMS.

Wordpress propose également une API web pour servir les contenus en mode Headless, c'est également un choix solide en PHP couplé à vos application en javascript moderne !