Cmssy vs Storyblok: bloki w kodzie kontra schematy w UI
Uczciwe porównanie dwóch headless CMS-ów z wizualnym edytorem. Gdzie definiuje się bloki, co daje API i co realnie zawiera każdy plan.
Przegląd
Storyblok to jeden z najbardziej ugruntowanych headless CMS-ów na rynku i to on spopularyzował myśl, że headless może mieć porządny wizualny edytor. Cmssy stoi na tym samym przekonaniu. Załatwmy więc najłatwiejszą część od razu.
Wizualna edycja to remis. Oba produkty osadzają Twoją żywą stronę w iframie i pozwalają redaktorowi kliknąć sekcję i edytować ją na miejscu. Jeśli czytałeś porównanie twierdzące, że headless oznacza rezygnację z wizualnej edycji, nie opisywało żadnego z tych narzędzi. Ciekawe różnice są gdzie indziej.
Gdzie żyją Twoje bloki
To jest prawdziwe rozwidlenie dróg - i realny kompromis, nie tabela wyników.
Storyblok definiuje bloki w Block Library, czyli edytorze schematu wewnątrz aplikacji Storybloka. Dodajesz blok, dodajesz do niego pola, zapisujesz. Twój frontend pisze potem komponent React (albo Vue, albo Astro), który te pola czyta. Dwa artefakty, w dwóch miejscach, które muszą się zgadzać na słowo honoru.
Cmssy definiuje bloki w Twoim repozytorium, jako kod:
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,
});Komponent jest otypowany z tego schematu, więc oba nie mogą się rozjechać:
export default function Hero({ content }: BlockProps<typeof heroProps>) {
const { heading, subheading, image } = content;
// zmień nazwę `heading` w schemacie, a to przestanie się kompilować
}Co realnie kupujesz każdym podejściem
Argument za definiowaniem bloków w kodzie sprowadza się do jednej rzeczy, która okazuje się ważyć bardzo dużo: kontrakt między schematem a rendererem jest egzekwowany. Zmień nazwę pola w schemacie klikanym w UI, a komponent, który je czyta, się nie zepsuje - po cichu wyrenderuje pustkę, a dowiesz się o tym, gdy ktoś spojrzy na stronę. Zmień nazwę pola w defineBlock, a build padnie, zanim cokolwiek pojedzie na produkcję.
Cała reszta wynika z tego, że schemat jest plikiem. Zmiana struktury to pull request, z diffem, recenzentem i git revert, jeśli była błędna. Gałąź feature'owa dostaje własny zestaw bloków, więc preview jest naprawdę odizolowany, zamiast dzielić jeden schemat z produkcją.
Argument za definiowaniem bloków w UI jest równie prawdziwy i nie będziemy udawać, że nie: nowa struktura treści nie wymaga deployu. Jeśli jesteś agencją prowadzącą czterdzieści stron klientów albo zespołem marketingu bez dewelopera na etacie, "marketer potrzebuje wariantu testimoniala dzisiaj" to wymaganie, na które CMS code-first odpowiada kiepsko. To realny koszt naszego podejścia, a nie błąd zaokrąglenia.
Nasze stanowisko - i gdzie go nie stosujemy
Cmssy nie wpycha wszystkiego do kodu. Dzielimy to świadomie:
- Bloki żyją w kodzie - bo tam żyje kontrakt schemat-renderer, a złamany kontrakt w tym miejscu to złamana strona.
- Modele treści żyją w CMS-ie - bo redaktor dodający pole do
productczyfaq-itemnigdy nie powinien czekać na deploy. - Mostem jest pole relacji -
fields.relation({ model: "faq-item", mode: "all" })pozwala blokowi zdefiniowanemu w kodzie zaciągnąć rekordy zdefiniowane w CMS-ie.
Jeśli Twój zespół nie ma dewelopera, ten pierwszy punkt jest kosztem, którego nie powinieneś ponosić, a Storyblok jest rozsądniejszym narzędziem. Wolimy to powiedzieć, niż wygrać sprawę i stracić Cię trzy miesiące później.
Wielojęzyczność
Tu oba produkty rozjeżdżają się kosztowo najostrzej.
Storyblok liczy locale według planu: darmowy Starter zawiera 2, plan Growth za $99/msc też zawiera 2, a Growth Plus za $349/msc podnosi to do 10. Czwarty rynek to rozmowa o cenniku.
Cmssy nie limituje języków. Każdy blok jest kluczowany językiem na poziomie treści, w każdym planie, a AI może uzupełnić tłumaczenia przez MCP. Ten artykuł istnieje w pięciu językach i nie kosztuje to nic ekstra.
Zwycięzca: Cmssy - zdecydowanie, jeśli sprzedajesz na więcej niż dwóch rynkach.
API
Storyblok daje REST-owe content delivery API w każdym planie. GraphQL jest wymienione jako funkcja Premium/Elite - czyli poziomu z ceną na zapytanie, nie liczbą na stronie.
Cmssy jest GraphQL-owe od najniższego planu. Klient SDK to cienka bramka, a nie zestaw wrapperów: cokolwiek wyrazisz zapytaniem, jest Twoim zapytaniem, otypowanym przez codegen.
Zwycięzca: Cmssy pod względem dostępności. REST Storybloka jest zupełnie dobry, ale schowanie GraphQL za rozmową handlową to realna bramka.
AI
Storyblok dodaje funkcje AI, w tym AI SEO na poziomach Premium i Elite.
Cmssy wystawia cały workspace przez serwer MCP, więc agent taki jak Claude tworzy strony, pisze teksty, uzupełnia tłumaczenia i ustawia pola SEO przez to samo API, którego używa edytor. Pracuje na treści i nigdy na Twoim kodzie - Twoje bloki zostają Twoje. Dostęp do MCP jest w planie Pro za $19/msc.
Zwycięzca: Cmssy - agentowe operacje na treści, a nie okienko czatu doklejone do pola.
Hosting i własność
Kolejny remis wart powiedzenia wprost. Oba są headless: żaden nie hostuje Twojej strony. Budujesz aplikację Next.js (albo Nuxt, albo Astro), wdrażasz gdzie chcesz, a CMS serwuje treść przez API. Nikt nie zamyka Twojego frontendu.
Cennik
Storyblok: Starter darmowy (1 miejsce, 1 space, 2 locale), Growth $99/msc (5 miejsc, 2 locale), Growth Plus $349/msc (15 miejsc, 10 locale), Premium i Elite na zapytanie. Dodatkowe miejsce $15/msc.
Cmssy: Hobby darmowy (1 workspace, 5 stron, 3 własne bloki), Pro $19/msc (5 workspace'ów, nielimitowane strony, 25 własnych bloków, AI i MCP), Enterprise na zapytanie.
Różnica między $19 a $99 rzuca się w oczy, ale bramki ważą więcej niż sama liczba. Czytaj, czego Twój plan nie zawiera, a nie tylko ile kosztuje. Dane Storybloka sprawdzone 27 lipca 2026 - zweryfikuj je przed decyzją.
Gdzie wygrywa Storyblok
Porównanie, w którym dostawca wygrywa każdą rundę, to marketing, nie informacja. Storyblok jest od nas realnie lepszy w kilku miejscach:
- Dojrzałość - lata na produkcji w dużych organizacjach i blizny operacyjne, które z tego wynikają.
- Ekosystem - duży rynek integracji, wtyczek do typów pól i partnerów agencyjnych. Nasz jest młody.
- Workflow redakcyjny na skalę - release management, własne role i ścieżki akceptacji są zbudowane dla redakcji i dużych zespołów marketingu.
- Operacje enterprise - SSO, SCIM i publikowane SLA dostępności 99,9% oraz 99,99%.
- Szerokość frameworków - pierwszoklasowe SDK dla wielu frameworków. Cmssy świadomie skupia się na React i Next.js.
Jeśli potrzebujesz ścieżek akceptacji w trzydziestoosobowej redakcji albo Twój proces zakupowy zaczyna się od ankiety SOC 2 i wymogu SSO, Storyblok jest dziś bezpieczniejszą odpowiedzią.
Porównanie
| Cecha | Cmssy | Storyblok |
|---|---|---|
| Wizualny edytor | Tak | Tak |
| Schemat bloku | Kod (typowany, w Twoim repo) | UI (Block Library) |
| Kontrakt schemat-renderer | Pilnowany przez kompilator | Na słowo honoru |
| Nowa struktura bez deployu | Tylko modele treści | Tak, dowolny blok |
| Locale | Bez limitu planowego | 2 darmowo, 2 przy $99, 10 przy $349 |
| GraphQL | Wszystkie plany | Premium/Elite |
| AI przez MCP | Pro ($19/msc) | AI SEO w Premium/Elite |
| Wdrażasz i hostujesz sam | Tak | Tak |
| Release management | Nie | Premium/Elite |
| SSO / SCIM | Enterprise | Premium/Elite |
| Pierwszy płatny plan | $19/msc | $99/msc |
Werdykt
Wybierz Storyblok, jeśli Twój zespół treści jest duży i potrzebuje ścieżek akceptacji oraz planowania wydań, jeśli potrzebujesz SSO i SLA, żeby przejść przez zakupy, albo jeśli nie masz dewelopera i musisz sam dodawać struktury treści.
Wybierz Cmssy, jeśli masz dewelopera i chcesz, żeby schemat bloków żył w Twoim kodzie, gdzie broni go kompilator, jeśli sprzedajesz w więcej niż dwóch językach, jeśli chcesz GraphQL bez rozmowy handlowej albo jeśli chcesz agenta AI operującego Twoją treścią przez MCP.
Uczciwe podsumowanie: Storyblok to bezpieczniejszy zakup enterprise, Cmssy to lepszy stack należący do dewelopera. Oba dają redaktorom wizualny edytor - ta dyskusja jest zamknięta.
Następne kroki
- Postępuj wg przewodnika instalacji, aby wpiąć
@cmssy/reacti@cmssy/nextw aplikację Next.js - Zobacz, jak definiuje się bloki w kodzie
- Przeczytaj o serwerze MCP
- Porównaj architekturę headless CMS ogólniej