//. 081 Dans la jungle des CMS Headless

Merci à DoubleSlash pour sa contribution le 07/02/2024

00:00:00 Introduction/Sommaire
00:03:30 Les fonctionnalités qui permettent de choisir
00:20:45 Les CMS Headless Git Based
00:35:20 Les BAAS (Backend As A Service)
00:40:30 Les CMS Headless SAAS (Software As A Service)
01:02:50 Les CMS Headless Cloud
01:03:35 Les CMS Headless Self Hosted
01:23:30 Conclusion

Le sujet des CMS Headless est très vaste. Les solutions disponibles sont impressionnantes. Il y a une quantité d’acteurs importants. Et surtout, les offres sont toutes différentes. En mode Saas, auto-hébergé, Git based ! Comment faire son choix.

Sans parler des fonctionnalités, multilingue, gestion des accès, preview…
Nous allons essayer de vous aider à faire un choix dans la jungle de CMS Headless. Vous expliquez les choses à vérifier. Nous allons tenter de vous faire comprendre qu’en fonction du client et du projet, il y a des CMS plus adaptés que d’autres.

LES ATTENTES OU FONCTIONNALITÉS À NE PAS NÉGLIGER

Multilingue
Gestions accès/rôles (très utile pour les entreprises avec différents services. Marketing, rédaction,…)
Éditeurs (WYSIWIG ou champs classiques)
Preview (vue des changements avant mise en ligne) Très important pour les sites statiques.
Gestion des médias (interne, externe, redimensionnement…) Souvent oublié mais primordial !
Process de validation (draft, review, validation etc… ) Certaines entreprises ont des relectures avant publication.
La simplicité d’utilisation et l’ergonomie. En tant que dev, on ne pense jamais à ça mais c’est aussi très important.
La vitesse (pour un éditeur qui passe du temps dans l’admin, c’est vite frustrant d’attendre)
Les librairies disponibles pour l’intégration. Fort couplage ou pas dans le code.
La customisation (le code est-il hookable pour exécuter des tâches spécifiques)
Webhook pour lancer les déploiements
Système d’import ou d’export. Le client ne va pas recréer tout le contenu.
Système de hub (import d’autres services pour intégration dans le contenu) e-commerce par exemple.

Les types de CMS

## GIT based CMS

FONCTIONNEMENT
Le CMS ajoute une couche au-dessus de l’application et rend les éléments éditables ou le CMS propose un dashboard pour éditer les fichiers de contenu.
Dans tous les cas, ce sont les fichiers de contenu qui sont édités (MD, JSON, CSV).
On parle de Git parce que toutes les data sont stockées au même endroit que le code source du projet.
Quels types de projet :
Très adapté aux sites statiques de par le fonctionnement. Mais il est possible de faire aussi du dynamique SSR. Avec Nuxt content par exemple.

QUELS TYPE DE CLIENT
En fonction du CMS utilisé ça peut être plus ou moins simple. Un CMS visuel peut être agréable pour les clients. A contrario, un système plus basique conviendrait plus à des personnes techniques. Le retour régulier des clients est la compréhension du déploiement par rapport à Git et l’automatisation qui va derrière. Généralement, les utilisateurs aiment voir les modifications rapidement et ne comprennent pas qu’il faille attendre.

AVANTAGES
Stockage simple
Certains frameworks gèrent bien les fichiers md.

INCONVÉNIENTS
Design limité sauf si on utilise du mdx/mdc mais ça complique les choses
A quels éléments prêter attention :
Mélange code CMS/front (Tina CMS).
Gestion des images
Gestion des accès

OFFRES
Statamic (basé sur Laravel) Rest, GraphQL, Live Preview, Revisions, Multisite,…) https://statamic.com/features (propriétaire)
Nuxt Studio (seulement Nuxt) https://nuxt.studio/ (Preview) Non open-source
Decap CMS https://decapcms.org/ (Workflow, preview) (open-source)
Sveltia CMS https://github.com/sveltia/sveltia-cms (Comme Decap CMS en plus light) (open-source)
KeyStatic https://keystatic.com/ (open-source)
Static CMS https://www.staticcms.org/ (open-source)
Tina CMS https://tina.io/ (open-source et cloud) Media (S3, cloudinary,..)
Yama CMS https://yama-cms.com/ (propriétaire)


## Warning ! BAAS (Backend As A Service)

FONCTIONNEMENT
Les services Backend as a Service (BAAS) sont des solutions cloud qui simplifient le développement d'applications en fournissant une infrastructure backend prête à l'emploi.
Ces services gèrent les aspects tels que les serveurs, les bases de données, les APIs et la sécurité, permettant aux développeurs de se concentrer sur la création de fonctionnalités frontales.
Avec des fonctionnalités telles que la mise à l'échelle automatique, la gestion des utilisateurs, et des coûts basés sur l'utilisation, les BAAS offrent une approche efficace et rentable pour le développement d'applications, en éliminant la nécessité de gérer directement l'infrastructure backend.

QUELS TYPES DE PROJET
......
La suite sur https://double-slash.dev/podcasts/cmsheadless/

Bonne écoute !