← Knowledge Base
platform

Storyblok

The only headless CMS with a Visual Editor that actually works for modern frameworks.

4 min read

Introduction

Storyblok solved the biggest problem in Headless CMSs: The “Headless Headache.”

In most headless systems (Contentful, Strapi), editors fill out a form, hit “Save,” and then wait 3 minutes for a build to finish to see if their title is too long. They work blind. Storyblok introduced the Visual Editor, a real-time bridge that loads your actual website inside an iframe and lets editors click directly on components to edit them.

It bridges the gap between the structured data purity developers love and the visual context marketers need.

Architecture and Technology

Storyblok is a pure SaaS, API-first platform.

The “Bridge” Architecture

How does the Visual Editor work? It’s not magic; it’s a JavaScript bridge.

  1. Iframe: The Storyblok admin loads yoursite.com/preview in an iframe.
  2. SDK: Your site includes the storyblok-js-client.
  3. Events: When an editor types in the sidebar, Storyblok sends a push event to the iframe.
  4. Reacting: Your code listens for this event and re-renders just that component.
    • Result: Instant keystroke-by-keystroke preview, without a server reload.

Component-Based Modeling

Storyblok forces you to think in Components (Bloks), not just Pages.

  • Nestable Blocks: You define a “Grid” component that can contain “Feature” components.
  • Content Types: These are the root items (Pages, Articles, Products).
  • Universal Schema: A “Teaser” component used on the Home Page is the exact same schema as a “Teaser” used on a Product Page.

API Layer

  • Content Delivery API: Fast, cached, read-optimized.
  • Management API: For programmatic creation of content/schemas (e.g., syncing products from Shopify).
  • GraphQL: A first-class GraphQL API is available for those who prefer it over REST.

Developer Experience (DX)

Storyblok is framework-agnostic, but the experience is particularly stellar with Next.js, Nuxt, and SvelteKit.

Next.js Integration

With the App Router, integration is seamless.

// page.js
import { getStoryblokApi, StoryblokComponent } from "@storyblok/react/rsc";

export default async function Page({ params }) {
  const storyblokApi = getStoryblokApi();
  const { data } = await storyblokApi.get(`cdn/stories/${params.slug}`);

  return <StoryblokComponent blok={data.story.content} />;
}

The <StoryblokComponent> recursively renders the JSON tree. If the JSON says { component: "hero" }, it looks for your Hero.jsx file.

Schema Management

You can manage schemas via the UI, but developers prefer the CLI.

  • storyblok pull-components: Downloads JSON schemas to your repo.
  • storyblok push-components: Updates the live CMS with your local changes. This allows for “Code-First” schema management, versioned in Git.

Typical Use Cases

1. E-commerce Storefronts

An Adidas or Tesla using Shopify for checkout but needing rich storytelling pages.

  • Why Storyblok: The Visual Editor lets merchandisers visually arrange “Product Grid” and “Lifestyle Image” blocks to create campaigns without dev help.

2. Marketing Websites (SaaS)

Companies that iterate their landing pages weekly.

  • Why Storyblok: A/B testing is often integrated. Marketers can clone a page, tweak the H1, and push it to a specific audience segment.

3. Localization

Global brands needing 40 languages.

  • Why Storyblok: Folder-level translation and field-level translation strategies are both supported. The “Dimensions” app makes managing region-specific content hierarchies easy.

Strengths

  • The Visual Editor: It is the best-in-class implementation of this feature. It works with any tech stack (even PHP or Ruby) as long as it handles the JS bridge.
  • Component System: The recursive nesting of components matches exactly how modern frontend developers think (React Components = Storyblok Bloks).
  • Pricing: A very generous free tier makes it accessible for developers, while Enterprise plans scale to massive traffic.
  • Image Service: Automatic optimization/resizing of images (similar to Cloudinary) is built-in.

Limitations and Trade-offs

  • Vendor Lock-in: It is SaaS. You cannot self-host it. The JSON structure is somewhat specific to Storyblok (the body array concept).
  • Rich Text Complexity: Their proprietary Rich Text field stores data as a JSON tree (ProseMirror based). Rendering this requires a specific renderer library, which can sometimes be tricky to customize perfectly.
  • Traffic Limits: Lower tiers have bandwidth limits that you need to watch if you accidentally skip your CDN cache.

Verdict

Storyblok is currently the “Cool Kid” of the Headless CMS world, and for good reason. It provides the best compromise between the visual needs of editors and the architectural needs of developers. If you are building with Next.js or Nuxt and want a Visual Editor, Storyblok is the default choice.

Join us at CMS Conf 2026

Nov 12-14 in Gdynia, Poland

Buy a Ticket