Strapi

Strapi

Serveur Node.js qui sert le contenu en REST ou GraphQL

Strapi est un CMS headless écrit en TypeScript, qui tourne comme un serveur Node.js à part entière. Les types de contenu se modélisent dans un panneau d'administration ; Strapi range les entrées dans une base SQL et les sert par une API REST, ou en GraphQL avec le plugin officiel @strapi/plugin-graphql. Le front-end ne connaît du CMS que cette API.

Cette architecture l'éloigne de TinaCMS, qui écrit le contenu en Markdown dans le dépôt Git, et de StudioCMS, qui s'installe dans un projet Astro. Strapi est un service de plus à héberger, avec sa base. Il est aussi bien plus téléchargé que TinaCMS : 258 813 fois sur npm la semaine du 28 septembre 2026, contre 62 778 pour tinacms.

Le comparatif des CMS headless open source met en regard le framework, la base et l'hébergement que chacun impose.

Schémas en JSON commités, API REST générée

  • Des modèles versionnés avec le code : le Content-Type Builder écrit chaque type dans un schema.json sous src/api/, qui se commite et se déploie avec le projet.
  • Une API REST sans code à écrire : chaque type reçoit ses routes, avec filters, sort, pagination, populate pour les relations, locale et status pour les langues et les brouillons.
  • Deux systèmes de droits : les rôles de l'administration encadrent les éditeurs, et le plugin Users & Permissions authentifie par JWT les utilisateurs finaux de l'API, par e-mail ou par un fournisseur comme Google ou GitHub.
  • Brouillons, langues et médias dans le cœur : Draft & Publish, l'internationalisation et la médiathèque sont fournis sans plugin.

Licence MIT hors dossiers ee/, SSO et relecture payants

MIT, sauf les dossiers ee/. Le fichier LICENSE n'accorde le MIT qu'à qui n'utilise aucun composant des dossiers ee/ et n'a pas de compte sur Strapi Cloud. Ce code, livré dans le même dépôt, relève de la licence Strapi Enterprise.

Relecture, SSO et journaux d'audit sont payants. L'édition Community, gratuite, garde les API, les rôles et un usage illimité. L'offre Growth, à 45 $ par mois pour trois sièges puis 15 $ par siège, ajoute l'aperçu en direct, les Releases (un lot d'entrées publié d'un coup), 14 jours d'historique et Strapi AI ; le SSO de l'administration y est une option, à partir de 150 $ par mois. Les workflows de relecture et les journaux d'audit n'existent que dans l'offre Enterprise, sur devis.

Node.js LTS, une base SQL et 2 Go de RAM au minimum. La documentation exige Node.js 22, 24 ou 26 et PostgreSQL 14, MySQL 8.0, MariaDB 10.3 ou plus récent, ou SQLite 3. MongoDB et les bases « cloud native » comme Amazon Aurora ne sont pas prises en charge. Le minimum est d'un cœur, 2 Go de RAM et 8 Go de disque ; la recommandation, de deux cœurs, 4 Go et 32 Go.

Aucune image Docker officielle. Chacun construit la sienne depuis son projet, à la main ou avec l'outil communautaire @strapi-community/dockerize. Sur Strapi Cloud, l'offre Starter coûte 35 $ par projet et par mois et se met en veille sans trafic.

Le schéma ne change qu'en développement. Le Content-Type Builder n'est disponible qu'en environnement de développement : en production, un nouveau champ passe par le code et un redéploiement.

Une version par semaine, la v4 abandonnée. La v5.57.0 est sortie le 7 octobre 2026, 44e version de la branche 5 depuis janvier. Strapi 4 est en fin de vie depuis le 30 avril 2026 ; sa dernière version, la v4.26.2 du 9 juin, corrigeait une faille critique d'exposition de données (CVE-2026-27886). Le passage à la v5 combine un outil de mise à jour qui applique des codemods et une reprise manuelle du code touché par les changements cassants.