Comparatif CMS

Cmssy vs Storyblok

Les deux sont des CMS headless avec éditeur visuel - égalité sur ce point. La différence tient à l'endroit où vivent vos blocs : du code typé dans votre repo, ou un éditeur de schéma dans l'UI de quelqu'un d'autre. Et ce que chaque plan contient vraiment.

L
L'équipe Cmssy
9 min read

Cmssy vs Storyblok : blocs en code contre schémas en UI

Une comparaison honnête de deux CMS headless à éditeur visuel. Où les blocs sont définis, ce que donne l'API et ce que contient vraiment chaque plan.

Vue d'ensemble

Storyblok est l'un des CMS headless les mieux établis du marché, et c'est lui qui a popularisé l'idée qu'un CMS headless peut quand même avoir un vrai éditeur visuel. Cmssy repose sur la même conviction. Réglons donc tout de suite la partie facile.

Sur l'édition visuelle, c'est égalité. Les deux produits encadrent votre site en production dans une iframe et laissent les rédacteurs cliquer sur une section pour la modifier sur place. Si vous avez lu un comparatif affirmant que headless signifie renoncer à l'édition visuelle, il ne parlait ni de l'un ni de l'autre. Les différences intéressantes sont ailleurs.

Où vivent vos blocs

Voilà la vraie bifurcation - et un arbitrage réel, pas un tableau de scores.

Storyblok définit les blocs dans sa Block Library, un éditeur de schéma à l'intérieur de l'application Storyblok. Vous ajoutez un bloc, vous lui ajoutez des champs, vous enregistrez. Votre frontend écrit ensuite un composant React (ou Vue, ou Astro) qui lit ces champs. Deux artefacts, à deux endroits, qui doivent s'accorder par convention.

Cmssy définit les blocs dans votre dépôt, sous forme de code :

import { defineBlock, fields } from "@cmssy/react";
import Hero from "./Hero";

export const heroProps = {
  heading: fields.text({ label: "Heading", required: true }),
  subheading: fields.textarea({ label: "Subheading" }),
  image: fields.media({ label: "Background" }),
};

export const heroBlock = defineBlock({
  type: "hero",
  label: "Hero",
  component: Hero,
  props: heroProps,
});

Le composant est typé à partir de ce schéma : les deux ne peuvent donc pas diverger :

export default function Hero({ content }: BlockProps<typeof heroProps>) {
  const { heading, subheading, image } = content;
  // renommez `heading` dans le schéma et ceci cesse de compiler
}

Ce que chaque approche vous apporte vraiment

L'argument en faveur des blocs en code se résume à une chose qui pèse lourd : le contrat entre le schéma et le rendu est imposé. Renommez un champ dans un éditeur de schéma en UI et le composant qui le lit ne casse pas - il affiche silencieusement du vide, et vous l'apprenez quand quelqu'un regarde la page. Renommez un champ dans defineBlock et le build échoue avant toute mise en ligne.

Tout le reste découle du fait que le schéma est un fichier. Un changement de structure est une pull request, avec un diff, un relecteur et un git revert s'il était mauvais. Une branche de fonctionnalité a son propre jeu de blocs : un déploiement de preview est donc vraiment isolé, au lieu de partager un schéma avec la production.

L'argument en faveur des blocs en UI est tout aussi réel, et nous n'allons pas prétendre le contraire : une nouvelle structure de contenu ne demande aucun déploiement. Si vous êtes une agence qui gère quarante sites clients, ou une équipe marketing sans développeur attitré, « la responsable marketing a besoin d'une variante témoignage aujourd'hui » est un besoin auquel un CMS code-first répond mal. C'est un vrai coût de notre approche, pas une erreur d'arrondi.

Notre position - et là où nous ne l'appliquons pas

Cmssy ne met pas tout dans le code. Nous séparons délibérément :

  • Les blocs vivent dans le code - car c'est là que vit le contrat schéma-rendu, et un contrat rompu à cet endroit, c'est une page cassée.
  • Les modèles de contenu vivent dans le CMS - car une rédactrice qui ajoute un champ à un product ou un faq-item ne devrait jamais attendre un déploiement.
  • Un champ de relation fait le pont - fields.relation({ model: "faq-item", mode: "all" }) permet à un bloc défini en code de tirer des enregistrements définis dans le CMS.

Si votre équipe n'a pas de développeur, ce premier point est un coût que vous ne devriez pas payer, et Storyblok est l'outil le plus sensé. Nous préférons le dire plutôt que gagner l'argument et vous perdre trois mois plus tard.

Multilingue

C'est ici que les deux produits divergent le plus nettement sur le coût.

Storyblok compte les locales par plan : le plan Starter gratuit en inclut 2, le plan Growth à 99 $/mois en inclut lui aussi 2, et Growth Plus à 349 $/mois monte à 10. Un quatrième marché devient une discussion tarifaire.

Cmssy ne compte pas les langues. Chaque bloc est indexé par langue au niveau du contenu, sur tous les plans, et l'IA peut remplir les traductions via MCP. Cet article existe en cinq langues et cela ne coûte rien de plus.

Gagnant : Cmssy - nettement, si vous vendez sur plus de deux marchés.

L'API

Storyblok fournit une API REST de diffusion de contenu sur tous les plans. GraphQL est listé comme une fonctionnalité Premium/Elite - c'est-à-dire le palier au tarif sur demande, pas un chiffre affiché.

Cmssy est en GraphQL dès le plan le plus bas. Le client du SDK est une passerelle légère plutôt qu'un ensemble de wrappers : tout ce que vous pouvez exprimer en requête est votre propre requête, typée par le codegen.

Gagnant : Cmssy sur la disponibilité. L'API REST de Storyblok est tout à fait correcte, mais mettre GraphQL derrière un appel commercial reste une barrière.

L'IA

Storyblok a ajouté des fonctionnalités d'IA, dont l'AI SEO sur les paliers Premium et Elite.

Cmssy expose tout le workspace via un serveur MCP : un agent comme Claude crée des pages, rédige des textes, remplit les traductions et renseigne les champs SEO, par la même API que l'éditeur. Il travaille sur le contenu et jamais sur votre code - vos blocs restent les vôtres. L'accès MCP est inclus dans le plan Pro à 19 $/mois.

Gagnant : Cmssy - des opérations de contenu agentiques, pas une boîte de chat vissée à un champ.

Hébergement et propriété

Encore une égalité qu'il faut dire clairement. Les deux sont headless : aucun n'héberge votre site. Vous construisez une application Next.js (ou Nuxt, ou Astro), vous la déployez où vous voulez, et le CMS sert le contenu via une API. Personne n'enferme votre frontend.

Tarifs

Storyblok : Starter gratuit (1 siège, 1 space, 2 locales), Growth 99 $/mois (5 sièges, 2 locales), Growth Plus 349 $/mois (15 sièges, 10 locales), Premium et Elite sur demande. Siège supplémentaire à 15 $/mois.

Cmssy : Hobby gratuit (1 workspace, 5 pages, 3 blocs personnalisés), Pro 19 $/mois (5 workspaces, pages illimitées, 25 blocs personnalisés, IA et MCP), Enterprise sur demande.

L'écart entre 19 $ et 99 $ fait le titre, mais les verrous comptent plus que le chiffre. Lisez ce que votre plan exclut, pas seulement ce qu'il coûte. Chiffres Storyblok vérifiés le 27 juillet 2026 - vérifiez-les avant de décider.

Là où Storyblok gagne

Un comparatif où le fournisseur gagne chaque manche, c'est du marketing, pas de l'information. Storyblok nous devance réellement sur plusieurs points :

  • Maturité - des années en production dans de grandes organisations, avec les cicatrices opérationnelles que cela produit.
  • Écosystème - un vaste marché d'intégrations, de plugins de types de champs et de partenaires agences. Le nôtre est jeune.
  • Workflow éditorial à l'échelle - gestion des releases, rôles personnalisés et circuits de validation pensés pour les rédactions et les grandes équipes marketing.
  • Exploitation en entreprise - SSO, SCIM et SLA de disponibilité publiés à 99,9 % et 99,99 %.
  • Étendue des frameworks - des SDK de premier ordre pour de nombreux frameworks. Cmssy se concentre délibérément sur React et Next.js.

Si vous avez besoin de circuits de validation pour une équipe éditoriale de trente personnes, ou si votre processus d'achat commence par un questionnaire SOC 2 et une exigence de SSO, Storyblok est aujourd'hui la réponse la plus sûre.

Comparatif

CritèreCmssyStoryblok
Éditeur visuelOuiOui
Schéma de blocCode (typé, dans votre repo)UI (Block Library)
Contrat schéma-renduImposé par le compilateurPar convention
Nouvelle structure sans déploiementModèles de contenu uniquementOui, tout bloc
LocalesNon comptées2 gratuit, 2 à 99 $, 10 à 349 $
GraphQLTous les plansPremium/Elite
IA via MCPPro (19 $/mois)AI SEO en Premium/Elite
Vous déployez & hébergezOuiOui
Gestion des releasesNonPremium/Elite
SSO / SCIMEnterprisePremium/Elite
Premier plan payant19 $/mois99 $/mois

Le verdict

Choisissez Storyblok si votre équipe de contenu est nombreuse et a besoin de circuits de validation et de planification des releases, s'il vous faut le SSO et un SLA pour passer les achats, ou si vous n'avez pas de développeurs et devez ajouter vous-même des structures de contenu.

Choisissez Cmssy si vous avez un développeur et voulez que le schéma des blocs vive dans votre base de code, là où le compilateur le défend, si vous vendez dans plus de deux langues, si vous voulez GraphQL sans appel commercial, ou si vous voulez un agent IA qui opère votre contenu via MCP.

Le résumé honnête : Storyblok est l'achat entreprise le plus sûr, Cmssy la meilleure stack possédée par les développeurs. Les deux donnent un éditeur visuel à vos rédacteurs - ce débat est clos.

Prochaines étapes