CMS-Vergleich

Cmssy vs Storyblok

Beide sind Headless CMS mit visuellem Editor - da steht es unentschieden. Der Unterschied liegt darin, wo deine Blöcke leben: als typisierter Code in deinem Repo oder als Schema-Editor im UI eines anderen. Dazu: was jeder Tarif wirklich enthält.

C
Cmssy-Team
9 min read

Cmssy vs Storyblok: Code-First-Blöcke statt UI-Schemas

Ein ehrlicher Vergleich zweier Headless CMS mit visuellem Editor. Wo Blöcke definiert werden, was die API hergibt und was jeder Tarif wirklich enthält.

Überblick

Storyblok ist eines der etabliertesten Headless CMS am Markt und hat die Idee populär gemacht, dass Headless trotzdem einen richtigen visuellen Editor haben kann. Cmssy steht auf derselben Überzeugung. Bringen wir also den einfachen Teil gleich hinter uns.

Beim visuellen Editing steht es unentschieden. Beide Produkte betten deine Live-Site in einen iframe ein und lassen Redakteure einen Abschnitt anklicken und direkt bearbeiten. Wenn du einen Vergleich gelesen hast, der behauptet, Headless bedeute den Verzicht auf visuelles Editing, ging es darin um keines dieser beiden Werkzeuge. Die interessanten Unterschiede liegen woanders.

Wo deine Blöcke leben

Hier ist die eigentliche Wegscheide - und ein echter Zielkonflikt, keine Punktetabelle.

Storyblok definiert Blöcke in der Block Library, einem Schema-Editor innerhalb der Storyblok-App. Du legst einen Block an, gibst ihm Felder, speicherst. Dein Frontend schreibt dann eine React- (oder Vue-, oder Astro-)Komponente, die diese Felder liest. Zwei Artefakte an zwei Orten, die per Konvention zueinander passen müssen.

Cmssy definiert Blöcke in deinem Repository, als 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,
});

Die Komponente wird aus diesem Schema typisiert, die beiden können also nicht auseinanderdriften:

export default function Hero({ content }: BlockProps<typeof heroProps>) {
  const { heading, subheading, image } = content;
  // benenne `heading` im Schema um und das hier kompiliert nicht mehr
}

Was dir jeder Ansatz wirklich bringt

Das Argument für Blöcke im Code läuft auf eine Sache hinaus, die sich als sehr gewichtig erweist: Der Vertrag zwischen Schema und Renderer wird erzwungen. Benenne ein Feld in einem UI-Schema-Editor um, und die Komponente, die es liest, geht nicht kaputt - sie rendert still nichts, und du erfährst davon, wenn jemand auf die Seite schaut. Benenne ein Feld in defineBlock um, und der Build schlägt fehl, bevor irgendetwas ausgeliefert wird.

Alles Weitere folgt daraus, dass das Schema eine Datei ist. Eine Strukturänderung ist ein Pull Request, mit Diff, Reviewer und git revert, falls sie falsch war. Ein Feature-Branch bekommt seinen eigenen Satz Blöcke, ein Preview-Deployment ist also wirklich isoliert, statt sich ein Schema mit der Produktion zu teilen.

Das Argument für Blöcke im UI ist genauso echt, und wir tun nicht so, als wäre es das nicht: Eine neue Inhaltsstruktur braucht kein Deployment. Wenn du eine Agentur mit vierzig Kundenseiten bist oder ein Marketing-Team ohne festen Entwickler, dann ist "die Marketerin braucht heute eine Testimonial-Variante" eine Anforderung, die ein Code-First-CMS schlecht beantwortet. Das ist ein echter Preis unseres Ansatzes, kein Rundungsfehler.

Unsere Position - und wo wir sie nicht anwenden

Cmssy steckt nicht alles in Code. Wir trennen bewusst:

  • Blöcke leben im Code - denn dort lebt der Vertrag zwischen Schema und Renderer, und ein gebrochener Vertrag heißt dort eine kaputte Seite.
  • Inhaltsmodelle leben im CMS - denn eine Redakteurin, die einem product oder faq-item ein Feld hinzufügt, sollte nie auf ein Deployment warten.
  • Ein Relationsfeld verbindet beides - fields.relation({ model: "faq-item", mode: "all" }) lässt einen im Code definierten Block CMS-definierte Datensätze ziehen.

Wenn dein Team keinen Entwickler hat, ist der erste Punkt ein Preis, den du nicht zahlen solltest, und Storyblok ist das vernünftigere Werkzeug. Das sagen wir lieber, als das Argument zu gewinnen und dich drei Monate später zu verlieren.

Mehrsprachigkeit

Hier gehen die beiden Produkte bei den Kosten am deutlichsten auseinander.

Storyblok rechnet Locales nach Tarif ab: Der kostenlose Starter enthält 2, der Growth-Tarif für 99 $/Monat ebenfalls 2, und Growth Plus für 349 $/Monat hebt es auf 10. Ein vierter Markt ist ein Preisgespräch.

Cmssy begrenzt Sprachen nicht. Jeder Block ist auf Inhaltsebene sprachverschlüsselt, in jedem Tarif, und die KI kann die Übersetzungen über MCP ausfüllen. Genau dieser Artikel existiert in fünf Sprachen, und das kostet nichts extra.

Gewinner: Cmssy - deutlich, wenn du in mehr als zwei Märkten verkaufst.

Die API

Storyblok liefert in jedem Tarif eine REST-Content-Delivery-API. GraphQL ist als Premium/Elite-Funktion gelistet - also auf der Stufe mit Preis auf Anfrage, nicht mit einer Zahl auf der Seite.

Cmssy ist ab dem untersten Tarif GraphQL. Der SDK-Client ist ein schlankes Gateway statt einer Sammlung von Wrappern: Alles, was du als Query ausdrücken kannst, ist deine eigene Query, typisiert durch Codegen.

Gewinner: Cmssy bei der Verfügbarkeit. Storyblok REST-API ist völlig in Ordnung, aber GraphQL hinter ein Verkaufsgespräch zu stellen, ist eine echte Hürde.

KI

Storyblok hat KI-Funktionen ergänzt, darunter AI SEO in den Stufen Premium und Elite.

Cmssy stellt den gesamten Workspace über einen MCP-Server bereit, sodass ein Agent wie Claude Seiten erstellt, Texte schreibt, Übersetzungen füllt und SEO-Felder setzt - über dieselbe API, die auch der Editor nutzt. Er arbeitet an Inhalten und nie an deinem Code: Deine Blöcke bleiben deine. MCP-Zugang gibt es im Pro-Tarif für 19 $/Monat.

Gewinner: Cmssy - agentische Content-Operationen statt einer an ein Feld geschraubten Chatbox.

Hosting und Eigentum

Noch ein Unentschieden, das man klar aussprechen sollte. Beide sind headless: Keiner hostet deine Site. Du baust eine Next.js- (oder Nuxt-, oder Astro-)App, deployst sie, wo du willst, und das CMS liefert Inhalte über eine API. Niemand sperrt dein Frontend ein.

Preise

Storyblok: Starter kostenlos (1 Sitz, 1 Space, 2 Locales), Growth 99 $/Monat (5 Sitze, 2 Locales), Growth Plus 349 $/Monat (15 Sitze, 10 Locales), Premium und Elite auf Anfrage. Zusätzliche Sitze kosten 15 $/Monat.

Cmssy: Hobby kostenlos (1 Workspace, 5 Seiten, 3 eigene Blöcke), Pro 19 $/Monat (5 Workspaces, unbegrenzte Seiten, 25 eigene Blöcke, KI und MCP), Enterprise auf Anfrage.

Der Abstand zwischen 19 $ und 99 $ ist die Schlagzeile, aber die Sperren wiegen schwerer als die Zahl. Lies, was dein Tarif ausschließt, nicht nur, was er kostet. Storyblok-Angaben geprüft am 27. Juli 2026 - verifiziere sie vor deiner Entscheidung.

Wo Storyblok gewinnt

Ein Vergleich, in dem der Anbieter jede Runde gewinnt, ist Marketing, keine Information. Storyblok ist uns an mehreren Stellen wirklich voraus:

  • Reife - Jahre im Produktivbetrieb bei großen Organisationen, mit den operativen Narben, die daraus entstehen.
  • Ökosystem - ein großer Marktplatz aus Integrationen, Feldtyp-Plugins und Agenturpartnern. Unserer ist jung.
  • Redaktioneller Workflow im großen Maßstab - Release-Management, eigene Rollen und Freigabe-Workflows sind für Redaktionen und große Marketing-Teams gebaut.
  • Enterprise-Betrieb - SSO, SCIM und veröffentlichte Verfügbarkeits-SLAs von 99,9 % und 99,99 %.
  • Framework-Breite - erstklassige SDKs für viele Frameworks. Cmssy konzentriert sich bewusst auf React und Next.js.

Wenn du Freigabe-Workflows für ein dreißigköpfiges Redaktionsteam brauchst oder dein Einkaufsprozess mit einem SOC-2-Fragebogen und einer SSO-Anforderung beginnt, ist Storyblok heute die sicherere Antwort.

Vergleich

MerkmalCmssyStoryblok
Visueller EditorJaJa
Block-SchemaCode (typisiert, in deinem Repo)UI (Block Library)
Vertrag Schema-RendererVom Compiler erzwungenPer Konvention
Neue Struktur ohne DeployNur InhaltsmodelleJa, jeder Block
LocalesNicht limitiert2 gratis, 2 bei 99 $, 10 bei 349 $
GraphQLAlle TarifePremium/Elite
KI über MCPPro (19 $/Monat)AI SEO in Premium/Elite
Du deployst & hostestJaJa
Release-ManagementNeinPremium/Elite
SSO / SCIMEnterprisePremium/Elite
Erster bezahlter Tarif19 $/Monat99 $/Monat

Das Fazit

Nimm Storyblok, wenn dein Content-Team groß ist und Freigabe-Workflows und Release-Planung braucht, wenn du SSO und ein SLA brauchst, um durch den Einkauf zu kommen, oder wenn du keine Entwickler hast und Inhaltsstrukturen selbst anlegen musst.

Nimm Cmssy, wenn du eine Entwicklerin hast und willst, dass das Block-Schema in deiner Codebasis lebt, wo der Compiler es verteidigt, wenn du in mehr als zwei Sprachen verkaufst, wenn du GraphQL ohne Verkaufsgespräch willst oder wenn ein KI-Agent deine Inhalte über MCP bedienen soll.

Die ehrliche Zusammenfassung: Storyblok ist der sicherere Enterprise-Kauf, Cmssy der bessere entwicklereigene Stack. Beide geben deinen Redakteuren einen visuellen Editor - diese Debatte ist beendet.

Nächste Schritte