Web

Strapi : le CMS headless open-source pour la gestion de contenu

by Antonin Savoie 13 février 2024

Pour la création de nouvelles plateformes d’expériences numériques (DXP), les CMS headless ont le vent en poupe. Parmi ces CMS, Strapi gagne en popularité grâce, entre autres, à son haut niveau de modularité et sa facilité d’utilisation.

Qu’est-ce que Strapi ?

Strapi est un CMS headless qui repose sur un principe de simplicité. Avec une interface intuitive, la plateforme ne fournit que l’essentiel. Loin d’être un point faible, cela laisse une grande liberté de personnalisation. En effet, Strapi propose une multitude de plug-ins pour s’adapter à tous vos besoins. Utilisant des technologies plus modernes que les CMS classiques, il s’agit d’une solution évolutive qui offre de très nombreuses possibilités pour la gestion de contenus.

Quels sont les avantages de Strapi par rapport aux autres CMS ?

Strapi est un CMS headless écrit en Node.js et open-source. Tout son back-office est écrit en React. Créé en 2015 en France, Strapi se différencie des CMS traditionnels limités et utilise des technologies récentes. Il est disponible en version auto-hébergée ainsi que sur le cloud. Son approche préconise la simplicité. Ainsi, ce CMS contient uniquement l’essentiel et s’appuie sur de nombreux plug-ins pour être personnalisé en fonction de vos besoins. Ce CMS est préconisé si vous souhaitez diffuser des contenus sur différents canaux ou devices. Contrairement à des CMS comme Drupal ou WordPress, Strapi est orienté API. Cela permet notamment de gagner du temps lors de la diffusion de vos contenus sur des devices variés.
Si vous envisagez de développer un projet plus complexe, Strapi sera vraiment un atout précieux. Grâce à son architecture modulaire, vous pouvez le personnaliser et intégrer vos propres fonctionnalités. Cela confère une grande flexibilité au système, le rendant adaptable à tout type de projet.

Quelle est l’approche de Strapi ?

L’approche de ce CMS headless repose sur 3 caractéristiques principales :

  • La simplicité ;
  • Le fait qu’il soit customisable ;
  • L’orientation API.

L’installation du logiciel avec la documentation fournie se fait rapidement. Par défaut, elle se fait avec SQlite, mais il est ensuite possible de passer par d’autres bases de données, notamment lors de mise en production.

En se basant sur la simplicité, le CMS Strapi offre une interface claire et intuitive qui comporte :

  • Un content manager pour gérer l’ensemble des contenus ;
  • Un content type builder pour gérer et modifier les types de contenus ;
  • Une librairie média pour les fichiers images et vidéos ;
  • Une liste de plug-ins ;
  • Une marketplace pour ajouter de nouveaux plug-ins ;
  • Une section “Settings” pour la configuration du CMS.

Tout est pensé pour être évolutif en fonction des besoins de chaque projet. C’est pourquoi il existe de très nombreux plug-ins pour l’enrichir facilement. Certains d’entre eux sont créés par la communauté et en partie maintenus par l’équipe de Strapi. La création de plug-in custom est relativement simple, car elle est très bien documentée. La documentation de Strapi est importante pour vous guider dans l’ajout de toutes les fonctionnalités souhaitées.

HEADLESS EXPERIENCE CONF

Event 100% digital le 20/06 : une matinée de conférences dédiée à Strapi

S'inscrire

Quelles sont les différentes possibilités de Strapi ?

La gestion des contenus

Il existe différents types de contenus dans Strapi :

  • Collection Type : un contenu qui peut-être utilisé plusieurs fois, par exemple pour les actualités ou les évènements.
    Single Type : un contenu unique, comme une home page ou la page contact.
  • Component : des blocs contribuables qui proposent des champs ou des règles de validation spécifiques et peuvent être réutilisés dans divers contenus.

La construction se fait en direct : les différents contenus se trouvent dans la section “Content types builder”. Côté back-end, Strapi génère le code correspondant, notamment le schéma JSON. De plus, il est possible d’écrire directement le contenu dans le code. Dès que les modifications sont faites dans Strapi, le code est régénéré.

Quels sont les types de champs disponibles ?

  • Texte ;
  • Richtext ;
  • Image ;
  • Date ;
  • Etc.

Des custom fields permettent d’enrichir un type de contenu existant ou de créer un nouveau type de contenu sur mesure avec l’éditeur WYSIWYG de son choix.

Les possibilités des composants et zones dynamiques sont particulièrement intéressantes. Les composants sont des sous-types de contenus qui peuvent être répétés d’un contenu à l’autre. Les zones dynamiques permettent de contribuer avec un ou plusieurs types de composants et de faire des modifications à la volée. Cette option est parfaite pour créer différents contenus avec une variante.

Il existe deux types de statuts pour les contenus : Draft et Published. D’autres statuts peuvent être ajoutés grâce à des extensions.

Les API natives de Strapi

Une fois publiés, tous les contenus sont disponibles via les API natives de Strapi. Par défaut, il s’agit d’une API REST, mais il est possible de passer par GraphQL avec un plug-in officiel Strapi. Dès qu’un contenu est créé, son endpoint API est automatiquement généré. Il est ensuite possible de le récupérer via cette API. Par défaut, toutes ces API sont privées et peuvent être rendues publiques.

Strapi ne récupère que les infos de niveau 1. Pour récupérer certains contenus liés aux champs images, par exemple, il faut utiliser le paramètre “Populate”. Son utilisation est parfois fastidieuse. Pour plus de facilité, il existe un plug-in nommé populate-deep qui récupère toutes les informations par défaut.

Plusieurs filtres sont proposés par API REST pour filtrer les valeurs basiques sur les champs profonds, les statuts de publications et enrichir les controllers pour utiliser des fonctionnements particuliers. De multiples opérateurs sont disponibles.

L’internationalisation

Initialement, Strapi est configurée en anglais. La langue de l’admin se configure dans le fichier app.js, la langue des contenus se configure grâce au plugin intégré dénommé « internationalisation ». Ce dernier permet de gérer plusieurs langues, y compris les collections.

La gestion des utilisateurs

Pour la gestion des contributeurs, il y a la création multiple des rôles avec leurs règles associées. Il est possible de générer une clé d’API avec des règles précises. Vous retrouverez ces paramètres dans la gestion “Users” pour donner à chaque contributeur un ou plusieurs rôles avec beaucoup de finesse.

Configurer les vues

Dans le back-office, vous pouvez customiser les vues des contenus lors de leur édition en réorganisant la taille des champs, le texte affiché, etc. Les champs peuvent être déplacés ou édités. Un plug-in, Strapi Config-Sync, permet de les synchroniser plus facilement dans différents environnements.

Strapi, un CMS simple et flexible

Strapi se veut un CMS simple, mais tout est à disposition sous forme d’extensions pour pouvoir l’enrichir facilement. L’importante documentation disponible et les possibilités du logiciel en font une solution flexible. Elle comprend une vraie approche back-end pour ajouter des features complètement customisables. Sa conception en fait un CMS évolutif et performant.

Entièrement personnalisable, Strapi adopte une approche où vous pouvez ajouter les briques qui vous correspondent avec des plug-ins, mais aussi développer vous-même vos propres extensions. L’architecture et l’organisation de Strapi en fait un outil fiable et performant qui propose une véritable flexibilité, contrairement aux CMS traditionnels. Il offre une véritable alternative à ces derniers en misant sur la flexibilité, la technologie et la performance.

Sources complémentaires :

Antonin Savoie

Antonin Savoie

Lead Développeur Web

Lead Développeur Web chez Kaliop et passionné du Web, je travaille sur un large panel de technologies comme Symfony, Vue.js, Serverless, AWS, Node.js, Docker, Varnish.

Commentaires

Ajouter un commentaire

Votre commentaire sera modéré par nos administrateurs

Vous avez un projet ? Nos équipes répondent à vos questions

Contactez-nous