Mattéo Perronet
le 

Notre comparatif des CMS headless

6 minutes de lecture

Il existe de nombreux CMS headless sur le marché et historiquement Troopers a toujours utilisé Prismic. Avec quelques années de recul, nous avons tiré le bilan de ses forces et faiblesses et décidé de passer quelques jours à chercher de nouvelles solutions. Lors d'un sprint dédié, nous avons passé en revue Strapi, Contentful, Wordpress (headless), DatoCMS, Sanity, Translucide et Bolt.

Le test a été effectué en mai 2021 et certains CMS ont pu évoluer depuis. Les CMS ont été testés avec technologies React et NextJS et en prenant en compte certains critères en priorité : multilingue, GraphQL, open source, …

prismic_io_-_mazet-website.png

Prismic

C’est la solution sur laquelle nous avons le plus de recul et qui est utilisé pour plusieurs clients de l'agence. C'est un SaaS avec un abonnement gratuit pour la majorité des besoins, l'abonnement devient payant à 7$/mois. Au niveau des fonctionnalités, on retrouve évidemment la possibilité de créer des types de contenu, répétables ou non, fichiers auto-hébergés ou non (médiathèque), groupes de champ, etc. Couplé à NextJS, il est possible de passer par le CMS pour gérer le menu, le fil d'ariane et le slug.

👍 Avantages Le module multilingue est très bien fait et permet de passer rapidement d'une traduction à l'autre. Il est possible de faire un lien vers une page du site très facilement grâce à une interface dédiée.

👎 Inconvénients Aucun mécanisme de validation des champs n'est proposé, ce qui est d'ailleurs assumé par Prismic, tout comme l'absence de valeurs par défaut sur les champs. Il est probable que l’utilisateur final ne remplisse pas les champs obligatoires et se retrouve avec un comportement inattendu sur le site.

L’API délivrée ne permet pas d’écrire, nous n’avons donc aucun moyen d’importer des données depuis un service externe. C’est une limitation est à prendre en compte suivant les besoins du projet.

😐 Il existe une fonctionnalité intéressante : les content slices. Ce sont des sortes de widget qui peuvent être ajoutés à la demande sur différents types de contenu. Nous pouvons imaginer un slice affichant un abonnement à une newsletter qui serait ajouté et personnalisé suivant le besoin sur différentes pages.

Bien que la fonctionnalité soit intéressante, un problème vient principalement du fait que chaque slice est rattaché à un seul type de contenu. Si nous souhaitons le réutiliser dans un autre type de contenu, nous devons dupliquer ces informations. Cette duplication rend difficile le maintien d’une seule source de vérité. Pour des sites vitrine où nous nous retrouvons avec beaucoup de logique, cela devient même impossible quand le site commence à prendre de l'ampleur.

Globalement, Prismic couvre une bonne partie des besoins de nos clients mais certains défauts rendent la solution difficile à maintenir avec le temps.

strapi.png

Strapi

En parallèle à Prismic, nous avions eu pas mal d’échos sur Strapi qui est une solution développée en NodeJS open-source auto-hébergeable. Nous avons eu l’occasion de l’essayer et de tester ses limites et nous avons globalement été séduits. Il se différence par son interface personnalisable et la variété des champs disponibles ainsi que les fonctionnalités qui manquent à Prismic : validation des champs, valeurs par défaut.

👍 Avantages Une logique similaire aux content slices existe, sans le problème de source de vérité car ils sont librement réutilisables dans chaque type de contenu !

👎 Inconvénients Au contraire de Prismic, il est difficile de faire un lien vers une page du site ; il faut développer un champ spécifique alors que Prismic en fait une fonctionnalité native du CMS.

contentful.png

Contentful

C'est une solution très populaire avec un abonnement gratuit assez poussé. Son offre Team à 490$/mois peut se montrer bloquante si on souhaite y passer dans un avenir proche.

👍 Avantages Nous y retrouvons globalement les mêmes types de données que ses concurrents à l’exception des groupes de champs. Cette notion est pour le moins indispensable et bloquante pour nos critères que nous avons définis comme obligatoires. S'il propose un système de validation, il ne propose pas de valeurs par défaut.

👎 Inconvénients Ce service devient payant à partir du moment où l’on souhaite plus de deux langues.

Wordpress (headless)

Beaucoup de nos clients sont ou souhaitent être sur Wordpress donc nous avons logiquement testé son API. Comme nous l’avions imaginé, tout fonctionne sous forme de plugins. C’est ce qui fait sa force mais aussi sa faiblesse. Nous devons installer une quantité de plugins assez importante pour essayer de reproduire les fonctionnalités des autres CMS que nous avons testés. Des conflits d’extension ont surgi lorsque nous avons essayé d’installer des plugins pour faire du GraphQL, de l'ACF ou tester Yoast pour le SEO. Nous n’avons pas insisté et avons passé notre chemin.

DatoCMS

Une veille sur ProductHunt, nous avons trouvé DatoCMS, une solution SaaS qui est un adversaire redoutable par le nombre de ses fonctionnalités et des extensions poussées. Nous avons été tout autant séduit que Strapi, DatoCMS possède une longueur d'avance sur ses concurrents. Il possède tous les avantages que nous avons listés précédemment et s’intègre parfaitement dans notre écosystème. Son offre gratuite peut convenir pour de nombreux petits sites vitrine. Son offre payante passe à plus de 99€/mois une fois qu’on veut passer sur un multi compte avec plus de quotas.

👎 Inconvénients La seule et unique remarque que l’on peut lui faire est qu’il n’est pas open-source.

DatoCMS est sûrement une des plus belles trouvailles de notre sprint CMS. ❤️

Sanity

Sanity est un outil que nous avons trouvé intéressant car le back-office est entièrement personnalisable. Revers de la médaille : il est difficile de s'orienter dans l'interface tant qu'elle n'est pas personnalisée et le faire peut prendre un certain temps.

👍 Avantages La gestion du multilingue est possible, mais tout comme l’interface il est difficile de s’y retrouver.

Translucide

Nous avons entendu parler de ce projet en tant que CMS écoresponsable et l'avons donc esssayé. C’est un projet open-source assez jeune et autohébergé. Très peu de fonctionnalités sont proposées à l’heure actuelle. Nous n’avons pas pu le comparer aux autres mais il a le mérite d’exister et de mûrir.

Bolt

C’est un CMS un peu différent des autres car il est basé sur Symfony et il peut être headless ou non. Nous avons joué avec l’API et été agréablement surpris de par son interface et ses possibilités. Bolt offre la possibilité de moduler Symfony en y ajoutant des propres fonctionnalités spécifiques couplées avec le CMS en mode API est intéressante pour les sites avec de la logique métier. Il est disponible sur la dernière version de Symfony qui est en LTS et utilise API Platform, ce qui est un bon point.

👍 Avantages Concernant les fonctionnalités du CMS, nous y retrouvons tous les types de champs communs à ses concurrents avec critères de validation, l'i18n, GraphQL, etc.

👎 Inconvénients Nous n’avons pas encore pu l’essayer pour un client, mais il peut être très intéressant lorsqu’il s’agit de l’utiliser en complément de Symfony.