Intégration Astro qui fait tourner le CMS dans le site
StudioCMS est un CMS en TypeScript qui s'installe comme une intégration Astro. Le tableau de bord (sous /dashboard par défaut), l'authentification et l'API de contenu sont servis par le site lui-même, et le contenu est rangé dans une base libSQL, MySQL ou PostgreSQL. Les pages Astro le lisent par un module virtuel, studiocms:sdk.
Sa documentation part d'un constat : Astro demande d'être développeur, et un client qui veut modifier ses pages n'y trouve rien à sa portée. Strapi répond à ce besoin avec un serveur à part, qui sert n'importe quel front par API. TinaCMS écrit le contenu en Markdown dans le dépôt Git. StudioCMS garde une base de données, mais le CMS vit dans le projet Astro.
Le comparatif des CMS headless open source confronte ce que chacun impose au site qui l'accueille.
Déploiement unique et formats de page choisis par plugin
- Un seul déploiement : le tableau de bord fait partie du projet construit. Il n'y a pas de second service à héberger, ni de clé d'API à faire circuler entre le back-office et le front.
- Le format des pages se choisit par plugin : Markdown, MDX, Markdoc, HTML ou éditeur WYSIWYG, chacun dans son paquet (
@studiocms/md,@studiocms/wysiwyg...). D'autres plugins officiels ajoutent un front de blog, le service d'images Cloudinary ou le stockage des fichiers sur S3, et l'API des plugins permet d'écrire les siens. - Comptes et droits intégrés : identifiant et mot de passe par défaut, connexion GitHub, Discord, Google ou Auth0 avec
@studiocms/oauth. Chaque compte porte l'un des rangs owner, admin, editor ou visitor, et le tableau de bord émet les jetons de l'API REST. - Trois bases SQL : libSQL par défaut, MySQL ou PostgreSQL, interrogées via Kysely. Le schéma suit les versions par des migrations lancées en ligne de commande (
studiocms migrate --latest). - Licence MIT : le site du projet ne propose ni édition payante ni hébergement géré.
Astro 7 et rendu serveur exigés, ruptures en version mineure
Astro 7 est obligatoire depuis la 0.5.0. Publiée le 24 septembre 2026, elle demande astro ^7.0.0, alors que les versions 0.1.0 à 0.4.4 demandaient Astro 5 : aucune version publiée n'a accepté Astro 6. Astro 7 exige à son tour Node.js 22.12 ou plus, et StudioCMS ne tourne ni sous Bun ni sous Deno. La page d'accueil du projet parle encore de « tout projet Astro v5 ».
Le site doit tourner en rendu serveur. La documentation exige un adaptateur Astro qui gère les routes SSR, l'option site, une base joignable et une clé CMS_ENCRYPTION_KEY. Un hébergement de fichiers statiques ne suffit donc pas.
L'inscription est ouverte par défaut. L'option allowUserRegistration vaut true tant que la configuration ne la coupe pas, et le tableau de bord expose alors une page d'inscription.
Les traductions du contenu ne sont pas gérées. Gérer un même contenu en plusieurs langues est une demande ouverte depuis mai 2024 (ticket #55).
L'API REST sert d'abord le CMS. Elle repose sur des endpoints Astro protégés par jeton, et la documentation la dit « principalement utilisée en interne par StudioCMS ».
Une 0.x qui casse en version mineure, portée par un développeur. La 0.1.0 est sortie le 15 janvier 2026, après des bêtas publiées depuis septembre 2024, et la 0.6.1 date du 1er octobre 2026. Six mois séparent la 0.4.4 (14 mars 2026) de la 0.5.0. La 0.5.0 abandonne Astro 5 ; la 0.6.0 retire un champ de l'API des plugins, et un plugin qui le passe encore échoue à la vérification TypeScript. Sur les 1 700 commits de la branche principale, un même développeur en signe 905 et le robot Renovate 573 ; le deuxième contributeur humain en compte 18.
