# Is Sanity Visual Editing good enough for marketing teams?

Reviewed by Martin Dejnicki · facts verified 25 October 2026 · canonical: https://deploi.ca/sanity/features/visual-editing

Experience: Reviewed from Sanity's documentation, not production use.

## Short answer

Sanity Visual Editing is good enough for marketing teams that edit copy and rearrange approved page sections, and it's included on every plan, Free too ([Sanity pricing](https://www.sanity.io/pricing), October 2026). It isn't a free-form page designer, because drag and drop works only on array items your developers modeled, and it doesn't work on touch devices ([Sanity Docs](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop), October 2026).

- **Plan availability:** Free, Growth and Enterprise. Visual Editing, the Presentation tool and Content Source Maps show Yes on all three plans; Sanity opened them to Free in November 2023 ([Sanity, Plans that scale with you](https://www.sanity.io/pricing); [Sanity, Introducing the new Sanity Growth plan to serve collaborative teams](https://www.sanity.io/blog/introducing-new-sanity-growth-plan))
- **Full framework support:** Next.js, Remix, Nuxt and SvelteKit. Astro and plain TypeScript rate Basic and need server-side rendering; a no-React package for static HTML shipped in August 2026 ([Sanity Docs, Visual editing architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture); [Sanity, What's new in August 2026](https://www.sanity.io/blog/august-releases-2026))
- **Page building:** Add, move, remove, reorder sections; no touch devices. Needs Sanity Studio 3.65.0, @sanity/visual-editing 5.7.3 and React 19.2 or later; editors move predefined blocks, they don't draw layouts ([Sanity Docs, Enable drag and drop for Visual Editing](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop); [Sanity Docs, Preview and page building](https://www.sanity.io/docs/user-guides/preview-and-page-building))
- **Stega overhead:** About 800 invisible characters a string. Encoded strings break comparisons, URLs and date parsing until the code cleans them with stegaClean() ([Sanity Docs, Client setup and stega for visual editing](https://www.sanity.io/docs/visual-editing/visual-editing-client-stega))

## Deploi's call

Visual Editing is the right default for marketing teams on Sanity, because it ends the hunt for the field behind a live page and costs nothing extra on any plan. Treat it as the editing surface for a block library your developers design, not as a design tool. Teams whose marketers must change layout on every page are better served by Builder.io.

**ADOPT: Turn Visual Editing on when**

- Pages are built from a fixed set of section types that marketers fill in and reorder.
- Your frontend runs Next.js, Remix, Nuxt or SvelteKit, which Sanity rates Full support, or can render previews on a server ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture), October 2026).
- Editors lose time finding which document and field feed a live page.
- Developers can budget draft mode, overlays and stega cleanup, the stripping of invisible source metadata from strings, into the first build.

**LIMITS: Adopt Visual Editing with limits when**

- Marketers expect to set spacing, colors and layout per page without a developer.
- Editors work mostly on tablets or phones, where drag and drop doesn't work as of October 2026 ([drag and drop guide](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop)).
- Your site is static with no server, so Sanity's August 2026 standalone package gives click-to-edit, and by our reading of the Astro guide draft previews still need a server.
- Your frontend sits below the Next.js 16 and React 19.2.3 that Sanity's Pages Router guide lists as prerequisites, so check which next-sanity line accepts your Next.js version before you plan an upgrade.

## What does Sanity Visual Editing do for a marketing team?

Sanity Visual Editing lets marketers see draft changes on the real page, click any element to open the field behind it, and rearrange page sections in the preview. Sanity lists three capabilities: live preview, click-to-edit and drag-and-drop page building ([Sanity Docs, Visual editing](https://www.sanity.io/docs/visual-editing/introduction-to-visual-editing), October 2026). The editing happens inside the Presentation tool, a Sanity Studio plugin that renders your frontend in an iframe beside the editing form ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture), October 2026).

Click-to-edit works because the Content Lake returns Content Source Maps, which tie every value in a query result to its document and field. With stega encoding on, the Sanity client hides that map inside each string as invisible characters, and an overlay script turns them into clickable outlines ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture)). On Enterprise projects with the Content Releases add-on, editors can also preview a [whole content release](https://deploi.ca/sanity/features/content-releases) from the perspective menu ([Preview and page building guide](https://www.sanity.io/docs/user-guides/preview-and-page-building), October 2026).

**How a click in the preview reaches the right field in Sanity Studio**

- Presentation tool -> Your frontend: opens the page in draft mode inside an iframe
- Content Lake -> Sanity client: query result plus Content Source Maps
- Sanity client -> Rendered page: strings carrying invisible stega metadata
- Overlay script -> Sanity Studio: document and field path of the clicked element
- Sanity Studio -> Your frontend: the saved edit, re-fetched and re-rendered

## What do you need to run Sanity Visual Editing in October 2026?

You need any Sanity plan and a frontend that can render previews on a server. Free, Growth and Enterprise all show Yes for Visual Editing, the Presentation tool and Content Source Maps as of October 2026 ([Sanity pricing](https://www.sanity.io/pricing)), as they have since November 2023 ([Sanity's Growth plan announcement](https://www.sanity.io/blog/introducing-new-sanity-growth-plan)).

Your frontend framework is the real gate. Sanity rates Next.js, Remix, Nuxt and SvelteKit as Full support; Astro and plain TypeScript rate Basic and need server-side rendering ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture), October 2026). Sanity's Pages Router guide lists Next.js 16.x and React 19.2.3 or later as prerequisites ([Next.js Pages Router guide](https://www.sanity.io/docs/visual-editing/visual-editing-with-next-js-pages-router)), so older stacks start with an upgrade ([Sanity with Next.js](https://deploi.ca/sanity/integrations/nextjs)).

**Visual Editing is on every plan, so your frontend decides the setup work**

| Frontend | Sanity's support level | Setup |
| --- | --- | --- |
| Next.js App Router | Full | Live updates through next-sanity |
| Pages Router, Remix, Nuxt, SvelteKit | Full | Loaders pattern |
| Astro | Basic | Server output; each edit reloads the page |

Sources: [Sanity Docs, Visual editing architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture); [Sanity Docs, Visual Editing with Astro](https://www.sanity.io/docs/visual-editing/astro-visual-editing). As of 24 October 2026.

> **Static sites: two Sanity pages read differently**
>
> Sanity's August 2026 notes promise "click-to-edit on static sites with no React" ([Sanity's August 2026 releases](https://www.sanity.io/blog/august-releases-2026)). The Astro guide says static output mode will not work, because draft mode needs per-request cookie checks ([Visual Editing with Astro](https://www.sanity.io/docs/visual-editing/astro-visual-editing), October 2026). Our reading: overlays work on static pages; draft previews need a server.

## What does it take to set up Sanity Visual Editing?

Setting up Sanity Visual Editing is a developer project with five parts ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture), October 2026):

**Setting up Visual Editing on an existing site**

1. **Turn on stega in the Sanity client.** Set `stega.enabled` to true with your Studio URL, and the client appends invisible source metadata, called stega, to every string it returns ([client setup guide](https://www.sanity.io/docs/visual-editing/visual-editing-client-stega)).
1. **Build draft mode.** An endpoint checks the Presentation tool's secret, sets a cookie and switches queries to drafts with a server-side Viewer token.
1. **Render the overlays.** The `VisualEditing` component or `enableVisualEditing()` turns stega strings into click-to-edit outlines ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture)).
1. **Configure the Presentation tool.** Add a preview URL, allowed origins (Sanity Studio v3.85.0 or later) and location resolvers ([Presentation tool guide](https://www.sanity.io/docs/visual-editing/configuring-the-presentation-tool)).
1. **Clean stega where it breaks code.** Strip it before comparisons, URLs and dates, and wire images and numbers with data attributes ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture)).

Stega is the part that breaks code. Each encoded string carries about 800 invisible characters, so a string compared to a fixed value or pushed into a URL fails until it's cleaned ([client setup guide](https://www.sanity.io/docs/visual-editing/visual-editing-client-stega), October 2026).

> **Check your framework version before you scope it**
>
> Sanity's Pages Router guide targets Next.js 16.x, while [next-sanity's 11.x line](https://deploi.ca/sanity/integrations/nextjs) still accepts Next.js 15. Our Shopify sections run an older Next.js release than either, so for us Visual Editing starts with an upgrade either way.

## Where does Sanity Visual Editing fall short for marketers?

Sanity Visual Editing falls short wherever marketers expect to design pages rather than fill them in. Sanity's user guide says the Presentation tool builds pages "with predefined design components, so pages stay consistent with your brand guidelines" ([Preview and page building guide](https://www.sanity.io/docs/user-guides/preview-and-page-building), October 2026). Drag and drop reorders items in an array of block types that developers modeled: it updates the array in the document, and your frontend re-renders the new order ([drag and drop guide](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop), October 2026). Four limits show up for marketers:

- **No free layout.** Spacing, colors and grid positions exist only as fields developers add, and Sanity's attribute guide advises against mimicking CSS (Cascading Style Sheets) properties in the schema because presentational fields inflate the attribute count ([Attribute limit guide](https://www.sanity.io/docs/content-lake/attribute-limit), October 2026).
- **No touch devices.** Drag and drop is "currently not compatible with touch-based devices" ([drag and drop guide](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop)).
- **New blocks need developers.** A new section type is a schema change plus a frontend component, so a campaign idea waits for a release.
- **Images and numbers need wiring.** They get click-to-edit only through data attributes, because stega encodes strings alone ([architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture)).

The landing page builder use case shows how to model a block library marketers can live with.

> **When Visual Editing won't satisfy your marketers**
>
> - They want to set layout, spacing and styles on each page without a developer.
> - They edit mostly on tablets or phones.
> - Campaign pages are one-offs that never reuse a block.

## How does Sanity Visual Editing compare with Storyblok's and Builder.io's visual editors?

Sanity Visual Editing sits closer to Storyblok's editor than to Builder.io's. Storyblok's Visual Editor shows a draft rendering of the site where editors "add, delete, and rearrange" blocks ([Storyblok Docs](https://www.storyblok.com/docs/manuals/visual-editor), October 2026), the same block-filling model as Sanity's Presentation tool. Builder.io's Visual Editor is a drag-and-drop design surface whose Style tab covers "spacing, colors, typography, and more" ([Builder.io Docs](https://www.builder.io/c/docs/visual-editor), October 2026), so marketers change layout without a schema change.

The trade is governance against freedom, so pick on who should own layout. [Sanity vs Storyblok](https://deploi.ca/sanity/compare/sanity-vs-storyblok) and [Sanity vs Builder.io](https://deploi.ca/sanity/compare/sanity-vs-builder-io) cover price and migration.

**Sanity and Storyblok edit blocks inside a design system; Builder.io lets marketers style the page**

| Question | Sanity Visual Editing | Storyblok Visual Editor | Builder.io Visual Editor |
| --- | --- | --- | --- |
| Editing surface | Your site in an iframe inside Sanity Studio | Draft preview you toggle against a form view | Drag-and-drop canvas with tabs |
| Who defines layout | Developers, as block types in the schema | Developers, as blocks; admins add presets | Marketers, with the Style and Layers tabs |
| Per-page styling | Only fields developers add | Custom styles in rich text, per its manual | Spacing, colors and typography in the Style tab |
| Best fit | Structured pages reused across channels | Block-built marketing sites | Marketing pages that change layout often |

The rows on who defines layout and best fit are Deploi's judgment from the vendors' own editor documentation. Sources: [Sanity Docs, Preview and page building](https://www.sanity.io/docs/user-guides/preview-and-page-building); [Storyblok, Visual Editor](https://www.storyblok.com/docs/manuals/visual-editor); [Builder.io, The Visual Editor](https://www.builder.io/c/docs/visual-editor). As of 24 October 2026.

## Deploi's point of view

**Where we disagree.** Sanity's own docs list drag-and-drop page building as a capability, and the phrase invites a picture of a Webflow-style canvas. What ships is narrower: editors move and edit blocks that already exist in the schema, and every new block type is a developer task. The second wrong claim is that turning on stega means turning on Visual Editing. Stega only hides the source map inside strings; editors get nothing to click until the frontend runs Sanity's overlay script, and they see drafts only once draft mode and the Presentation tool are wired up.

**What we've seen.** This verdict rests on Sanity's documentation of Visual Editing. The Shopify sections of deploi.ca preview drafts through a custom key-to-cookie preview, not through Draft Mode or the Presentation tool, and they run an older Next.js release on the Pages Router. Sanity's Pages Router guide targets Next.js 16 and React 19.2.3, so for us Visual Editing would start with a framework upgrade. The FAQ Hub with AI Chatbot template, which Martin Dejnicki published on Sanity Exchange, sets a Studio URL for stega in its client but renders no overlays and has no Presentation tool, so editors would have nothing to click even with stega switched on.

**What we'd tell you to do first.** Before anyone opens the Presentation tool, list the page sections marketers actually need and model them as an array of block types. Then check your frontend's Next.js or React version against Sanity's framework guide. Those two answers decide whether Visual Editing is a configuration task or a frontend upgrade.

## When this answer changes

- Sanity adds free-form layout or style controls to the Presentation tool
- Drag and drop gains support for touch devices
- Sanity moves Visual Editing or the Presentation tool off the Free plan
- The framework guides adopt the standalone package, or Astro static output gains draft previews
- The guides raise the minimum Next.js or React version again

## Running Next.js?

See how Sanity and Next.js fit together, from draft mode and live updates to the versions Visual Editing expects. [Read the Next.js guide](https://deploi.ca/sanity/integrations/nextjs)

## Sources

1. [Sanity, Plans that scale with you](https://www.sanity.io/pricing), checked 24 October 2026
2. [Sanity, Introducing the new Sanity Growth plan to serve collaborative teams](https://www.sanity.io/blog/introducing-new-sanity-growth-plan), checked 24 October 2026
3. [Sanity Docs, Visual editing architecture overview](https://www.sanity.io/docs/visual-editing/visual-editing-architecture), checked 24 October 2026
4. [Sanity, What's new in August 2026](https://www.sanity.io/blog/august-releases-2026), checked 24 October 2026
5. [Sanity Docs, Enable drag and drop for Visual Editing](https://www.sanity.io/docs/visual-editing/enabling-drag-and-drop), checked 24 October 2026
6. [Sanity Docs, Client setup and stega for visual editing](https://www.sanity.io/docs/visual-editing/visual-editing-client-stega), checked 24 October 2026
7. [Sanity Docs, Configuring the Presentation Tool](https://www.sanity.io/docs/visual-editing/configuring-the-presentation-tool), checked 24 October 2026
8. [Sanity Docs, Preview and page building](https://www.sanity.io/docs/user-guides/preview-and-page-building), checked 24 October 2026
9. [Sanity Docs, Visual Editing with Next.js Pages Router](https://www.sanity.io/docs/visual-editing/visual-editing-with-next-js-pages-router), checked 24 October 2026
10. [Sanity Docs, Visual Editing with Astro](https://www.sanity.io/docs/visual-editing/astro-visual-editing), checked 24 October 2026
11. [Sanity Docs, Visual editing](https://www.sanity.io/docs/visual-editing/introduction-to-visual-editing), checked 24 October 2026
12. [Storyblok, Visual Editor](https://www.storyblok.com/docs/manuals/visual-editor), checked 24 October 2026
13. [Builder.io, The Visual Editor](https://www.builder.io/c/docs/visual-editor), checked 24 October 2026
14. [Sanity Docs, Attribute limit](https://www.sanity.io/docs/content-lake/attribute-limit), checked 24 October 2026
