Système de gestion de contenu (Content Management System) qui se concentre sur la gestion et le stockage du contenu (et du back-end globalement) laissant le choix libre concernant les technologies à utiliser pour le front-end.
Prenons le temps de la réflexion : avant de nous lancer, il peut être judicieux de savoir pourquoi vous pourriez préférer un CMS Headless à un CMS traditionnel, et inversement.
Les CMS Headless ont gagné en popularité ces dernières années par leur flexibilité et leur scalabilité notamment, mais selon votre projet, peut-être que vous préférerez un CMS traditionnel. Il n’en sera cependant pas question dans cet article.
Faculté d’un produit, d’un logiciel ou d’une application à s’adapter aux fluctuations de la demande et du marché, tout en conservant ses fonctionnalités de base.
La multitude de solutions peut vite déboussoler les personnes qui n’ont jamais touché à ces solutions, alors comment faire le bon choix ? Tout commence par l’identification claire de vos besoins.
Identifier les besoins#
Avant de commencer à lire tous les articles et comparatifs de CMS que vous allez trouver, posez-vous certaines questions :
- Quels sont les objectifs du site / de l’application ? (Vente en ligne, blog, plateforme éducative, etc.)
- Quel est le budget ?
- Qui sont les utilisateurs finaux ?
- Quelle est la stratégie de contenu ?
Concernant la stratégie de contenu, il faut se demander : quel est son but (éducatif, engageant…), quels types de contenus seront créés, quels seront les canaux de distribution (où sera publié le contenu), comment ce dernier sera maintenu et actualisé, etc.
D’autres questions peuvent ensuite s’ajouter à la liste, comme :
- Quel est votre niveau de compétences techniques ? Si vous êtes novice, vos choix vont se porter sur des solutions avec des interfaces intuitives par exemple.
- Quelle importance est-ce que vous accordez à la personnalisation ?
- Est-ce que vous allez réaliser ce projet seul·e ou bien de façon collaborative ?
Vous l’avez compris, la liste de questions à se poser peut vite devenir impressionnante. La sélection sera moins compliquée une fois les besoins clairement déterminés.
Faire connaissance avec les outils#
Strapi#
Strapi est un CMS open source auto-hébergeable construit avec Node.js et qui propose une architecture back-end basée sur Express. Il permet de créer une intégration de contenu personnalisable, performante et est doté d’une API.
Logiciel dont le code est mis à disposition du public, ce qui encourage la transparence et la collaboration dans les communautés de développeurs·ses.
Il est optionnellement encadré par une licence dans laquelle le détenteur du droit d’auteur accorde aux utilisateurs le droit d’utiliser, d’étudier, de modifier et de distribuer le logiciel et son code source à quiconque et à n’importe quelle fin.
Il permet de créer des modèles de données avec des relations personnalisées entre les contenus. Par exemple, pour la création d’un blog, on peut créer des modèles de données comme “Article” et “Auteur” et faire en sorte que chaque article soit lié à un auteur spécifique. Il est aussi possible de créer d’autres “liens”, d’autres relations telles que des catégories d’articles pour organiser le contenu. En d’autres mots, il s’agit de façonner la structure du contenu de manière à répondre aux besoins du projet.
Outre sa flexibilité, Strapi offre un éditeur WYSIWYG (What You See Is What You Get) pour simplifier la création et la modification de contenu, ce qui peut être particulièrement utile pour les rédacteurs.
Cette solution profite d’une grande extensibilité de par sa communauté active (sur Discord par exemple). De plus, de nombreux plugins sont disponibles et visualisables via l’interface générée lors de la création de votre projet.
Strapi permet aussi un travail collaboratif avec ses fonctionnalités de contrôle d’accès et de gestion des rôles, tout comme Prismic.
Prismic#
En ce qui concerne ce dernier, Prismic se focalise sur la gestion de contenu en fournissant un cadre structuré. Contrairement à Strapi, il offre moins de personnalisation et propose des types de contenu prédéfinis. En tant que SaaS offrant une API de gestion de contenu, Prismic propose notamment un outil intéressant nommé Slice Machine, qui fonctionne avec les technologies Next.js et Nuxt 2 & 3.
Solution logicielle applicative hébergée dans le cloud et exploitée en dehors de l’organisation ou de l’entreprise par un tiers (fournisseur de service).
Slice Machine en quelques mots#
Slice Machine est un outil de développement local qui permet de construire des modèles “types” et des “Slices” de façon synchronisée entre votre codebase et votre repository Prismic.
Les types font référence à la structure globale des différents contenus / pages dans l’application. Chaque type représente un modèle de contenu spécifique. Quant aux Slices, ce sont des éléments modulaires et réutilisables : cela permet de diviser les contenus en sections avec leur propre structure.
Cet outil place vos modèles de contenu directement dans votre code, faisant ainsi de votre code la source de vérité pour vos structures de données.
Grâce à Slice Machine, vous pouvez gérer les versions et simuler localement vos modèles de contenu.
“Source of truth” (source de vérité) est une expression utilisée pour désigner la source la plus fiable et la plus à jour d’informations ou de données dans un système.
Comment faire votre choix ?#
Nous y voilà, la fameuse question. Lorsqu’il s’agit de choisir, ici entre Strapi et Prismic, il y a quelques points à considérer et il s’agit plus ou moins de relier les points évoqués plus haut.
En un coup d’œil#
| Critère | Strapi | Prismic |
|---|---|---|
| Modèle | Open source, auto-hébergé | SaaS, hébergé dans le cloud |
| Complexité technique | Compréhension de Node.js et Express utile pour les personnalisations avancées | Probablement plus intuitif pour les débutants |
| Personnalisation | Approfondie | Plus structurée, modulaire, “clés en main” |
| Hébergement | Contrôle total sur l’environnement et les ressources | Géré par Prismic, contrôle direct limité |
| Accès aux données | Contrôle total sur la base de données et les opérations CRUD | Via l’API de Prismic |
Complexité technique#
Strapi, en raison de sa personnalisation, peut nécessiter une meilleure compréhension des frameworks JavaScript tels que Node.js et Express, tandis que Prismic est probablement plus intuitif pour les débutants.
Strapi propose une interface admin qui permet de “tout” gérer (modèles de données, relations des contenus, etc.) et vous pourriez avoir besoin de manipuler le code de l’API, par exemple pour définir certains endpoints, pour gérer des autorisations, etc. Dans ces cas-là, une compréhension de Node.js et Express peut s’avérer nécessaire. Ça ne veut pas dire qu’il faut maîtriser ces technologies pour utiliser Strapi, mais pour des personnalisations avancées, c’est un plus.
Flexibilité et personnalisation (décidément)#
Comme nous venons de le voir, Strapi est une bonne solution pour une personnalisation approfondie, mais si par contre vous cherchez une solution plus structurée, modulaire et un peu “clés en main”, votre choix se porterait peut-être plus sur Prismic.
Taille du projet#
Plus un projet est vaste, plus il peut nécessiter une gestion efficace de la scalabilité. Dans ce cas-là, Strapi pourrait offrir plus de possibilités, en raison de son auto-hébergement.
Prismic propose une solution hébergée dans le cloud, donc l’infrastructure d’hébergement est gérée par Prismic et cela peut simplifier le processus de déploiement pour les utilisateurs qui ne souhaitent pas gérer leur propre infrastructure, mais le niveau de contrôle direct sur l’environnement d’hébergement est donc limité.
Strapi quant à lui, en étant auto-hébergé, peut être déployé sur vos propres serveurs et vous avez un contrôle total sur l’environnement d’hébergement ainsi que la capacité à ajuster les ressources en fonction des besoins du projet et de la charge (par exemple dans le cas où il y a un grand nombre d’utilisateurs actifs).
Accès aux données#
Avec Strapi, vous avez un contrôle total sur la base de données et les données stockées. Vous avez la liberté de choisir la base de données qui convient le mieux à votre projet (par exemple MongoDB, MySQL, etc.) et de définir la structure des modèles de données en fonction de vos besoins. Dans le cadre de Strapi, vous avez également la mainmise sur les opérations CRUD (Create, Read, Update et Delete). Cette flexibilité vous permet de personnaliser et de mettre en place des opérations spécifiques pour manipuler les données conformément aux exigences de votre projet.
D’un autre côté, Prismic adopte une approche différente pour l’accès aux données. Vos contenus sont stockés dans le cloud, et vous interagissez avec eux via une interface déployée dans le cloud. Vous accédez aux données en interrogeant l’API de Prismic à l’aide de requêtes.
Conseils pratiques pour la prise de décision#
Une fois vos besoins, vos critères et vos scénarios définis, libre à vous d’expérimenter et de vous faire votre propre avis sur les outils disponibles. Vous pourrez tester leur fonctionnement, leur intégration à votre projet. Consulter les différentes communautés peut aussi vous aider : lisez les retours d’expérience d’autres utilisateurs, car ils ont eu à se poser les mêmes questions que vous.
Comme vous l’avez compris, ce choix dépend tellement des spécificités de votre projet et de vos préférences techniques que je ne pourrais pas vous donner une réponse qui conviendra à tout le monde et tout le temps. Toutes ces solutions ont des avantages et des inconvénients et répondent à des besoins spécifiques. En prenant tout cela en compte, vous pourrez choisir la solution qui vous convient le mieux pour tel ou tel projet.
Ressources#
Documentation#
Tutoriels et guides#
- SvelteKit 1.0 Crash Course – Full Tutorial with Prismic
- Getting started with Strapi v4
- Strapi blog
- Communauté Prismic

