Skip to content
Now accepting new projects — limited slots available. Get started →
CMS · Updated Aug 2, 2026

What is Visual Editor (CMS)?

A Visual Editor is a CMS interface that lets editors preview and modify content directly on a rendered page.

What is a Visual Editor (CMS)?

A Visual Editor is a content management interface that renders a live or near-live preview of a web page and lets editors click directly on content blocks to modify text, images, layout, and components without switching to a separate form view. Unlike traditional WYSIWYG editors that only handle rich text fields, a Visual Editor operates at the page level — showing the actual frontend output including headers, footers, and component nesting. Storyblok popularized this pattern in the headless CMS space starting around 2017, and by 2026 most major headless platforms (Contentful with Studio, Sanity with Presentation, Builder.io) offer some version of it. The core technical requirement is a bridge between the CMS iframe and the frontend framework, typically via a postMessage API. We've shipped Visual Editor integrations on 50+ projects, and the pattern consistently cuts editorial review cycles by 40–60% because editors see exactly what visitors will see before they hit publish.

How it works

A Visual Editor creates a two-way communication channel between the CMS admin panel and a preview instance of your frontend application. Here's the architecture:

  1. Iframe embedding — The CMS loads your frontend app inside an iframe within its admin UI.
  2. Bridge script — A lightweight JavaScript bridge (e.g., Storyblok's storyblok-js-client or Sanity's @sanity/visual-editing) listens for postMessage events from the parent CMS window.
  3. Clickable overlays — The bridge injects overlay elements on top of editable content regions. When an editor clicks one, the CMS opens the corresponding field in a sidebar or inline popover.
  4. Real-time data push — As the editor types or rearranges components, the CMS sends draft JSON to the iframe. The frontend framework re-renders instantly without a full page reload.

For a Next.js integration with Storyblok, the setup looks roughly like this:

// app/layout.jsx
import { storyblokInit, apiPlugin } from '@storyblok/react/rsc';

storyblokInit({
  accessToken: process.env.STORYBLOK_PREVIEW_TOKEN,
  use: [apiPlugin],
  bridge: true, // enables real-time visual editing
});

The bridge: true flag activates the postMessage listener. In production builds you'd set this to false to avoid loading the bridge script.

Key technical constraint: your frontend must support a draft/preview mode where it fetches unpublished content. In Next.js, this is Draft Mode (introduced in v13.4). In Astro, you'd use server-rendered routes with a preview flag. Static-only builds can't support real-time visual editing without a parallel SSR preview deployment.

When to use it

Visual Editors shine when non-technical editors are managing page-level content frequently. Here's our decision framework:

Use a Visual Editor when:

  • Marketing teams own landing pages and need to iterate without developer involvement
  • Pages are component-based (hero blocks, feature grids, testimonials) and order matters
  • You're already on a headless CMS that supports it (Storyblok, Sanity, Contentful)
  • Editorial teams are large enough that training costs justify the integration effort

Skip it when:

  • Content is purely structured data (API-first, no page rendering — think product catalogs)
  • You have a single developer-editor who's comfortable with form-based editing
  • Your frontend is fully static with no SSR/preview capability and you don't want to add one
  • Budget is tight — Visual Editor integrations typically add 15–30 hours to a CMS build compared to form-only setups

The honest trade-off: Visual Editors add frontend complexity. You're maintaining a preview environment, a bridge integration, and editable component annotations. That's real ongoing cost.

Visual Editor vs alternatives

Approach Edit Experience Frontend Coupling Setup Complexity Best For
Visual Editor Click-on-page WYSIWYG High (iframe bridge) Medium-High Marketing-heavy sites
Form-based editor Structured fields in admin None Low Data-driven content
Live Preview (side-by-side) Form + preview pane Medium (preview URL) Medium Blog/editorial sites
Page Builder (e.g., WordPress Gutenberg) Block-based in admin Tightly coupled Low-Medium Monolithic CMS sites
Builder.io / hybrid Full drag-and-drop High (SDK required) Medium No-code page creation

Our preferred stack is Storyblok's Visual Editor with Next.js or Astro for marketing sites. For content-heavy editorial projects (docs, blogs), we lean toward Sanity's Presentation tool or a simple side-by-side preview. The right choice depends entirely on who's editing and how often.

Real-world example

A B2B SaaS company with a 6-person marketing team needed to launch and update landing pages for product launches, webinars, and case studies — roughly 8–12 new pages per month. We integrated Storyblok's Visual Editor with a Next.js 14 App Router frontend deployed on Vercel. Editors build pages from 22 pre-built components (hero, pricing table, CTA banner, testimonial carousel, etc.) by dragging them in the Visual Editor and filling in content inline. The preview environment runs in Draft Mode, pulling from Storyblok's draft API. Average time from blank page to published landing page dropped from 3 days (which previously required a developer ticket) to about 90 minutes of self-serve editing. The integration added roughly 25 hours to the initial build, paid back within the first month of use.

Frequently asked questions about Visual Editor (CMS)

Is a Visual Editor the same as a WYSIWYG editor?
Not quite. A WYSIWYG editor typically refers to a rich text field editor — think TinyMCE or ProseMirror — that formats text content within a single field. A Visual Editor operates at the full page level, rendering your actual frontend with all its components, layout, and styling. You click on any content block on the rendered page to edit it, not just a text area. A Visual Editor may contain WYSIWYG rich text fields inside it, but it's a broader concept covering page-level inline editing of structured, component-based content.
When did Visual Editors become standard in headless CMS platforms?
Storyblok launched with visual editing as a core feature around 2017 and was the first headless CMS to make it a primary selling point. For several years it was a differentiator. The pattern went mainstream around 2023–2024: Sanity released Presentation (their visual editing layer) in late 2023, Contentful launched Studio with live preview capabilities in 2024, and Builder.io continued expanding its visual-first approach. By early 2025, offering some form of visual or live preview editing had become table stakes for any headless CMS targeting marketing teams.
What's the alternative to a Visual Editor in a headless CMS?
The main alternative is form-based editing — the traditional approach where editors fill in structured fields (title, body, image URL, CTA text) in the CMS admin panel without seeing the rendered page. It's simpler to set up, doesn't require a preview environment, and works well for structured content like blog posts or product data. A middle ground is side-by-side preview, where the admin shows a form on the left and a live preview iframe on the right. You don't click on the page to edit, but you see changes reflected in near-real-time. Sanity's split-pane view and Contentful's preview sidebar work this way.
Does a Visual Editor work with static site generators like Astro?
Yes, but with caveats. A Visual Editor requires a server-rendered preview instance that can fetch draft content and re-render on the fly. If your Astro site is fully static (pre-rendered at build time), you'll need a separate SSR preview deployment that runs in server mode. Astro supports hybrid rendering as of Astro 2.0+, so you can keep production static while running a parallel server-rendered preview for the Visual Editor. Storyblok's `@storyblok/astro` package supports this pattern. The production build stays fast and static; the preview environment is SSR-only, typically behind authentication.
Get in touch

Let's build
something together.

Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.

Get in touch →