Canvas URL

View as Markdown
Last updated July 17, 2026

The canvas URL is a project-level path that Studio uses to preview sections. It does not affect how templates render at their real URLs.

Why It Exists

A section has no URL of its own, it's a reusable block, not a page. But Studio still needs a real page to load inside its iframe so you can preview and author the section. The canvas URL points at that page.

Section preview iframe  =  Base URL          +  Canvas URL
                           (Environment +       (project setting,
                            Language)            e.g. /canvas)

What the Canvas Route Needs

The page at your canvas URL needs to mount <StudioCanvas />:

// e.g. app/canvas/page.tsx in Next.js
import { StudioCanvas } from '@contentstack/studio-react';

export default function CanvasRoute() {
  return <StudioCanvas />;
}

That's it. Studio drives the rest via URL params.

Where You Set It

Studio → your project → SettingsConfiguration.

Click to enlarge

Once you've saved the Canvas URL, follow the steps in Set up the section preview route to add the matching route to your app.

  • Environment + Language: together resolve the Base URL from your stack's environment config
  • Canvas URL: the path on your site (e.g. /canvas)

(The Enable Freeform Feature toggle on the same page belongs to the optional Freeform chapter; leave it off unless you need it.)

When the Canvas URL Is Used

ActionUses canvas URL?
Opening a section to author or preview✅ Yes
Building / verifying a section in isolation✅ Yes
Opening a template❌ No, templates use their own URL patterns
Visitors loading a published page❌ No

Errors and Fixes

ErrorFix
"No Canvas URL Found" or MISSING_CANVAS_URLSet the Canvas URL field in Project Configuration
Canvas iframe fails to resolve a Base URLPick an Environment + Language in Project Configuration
Canvas loads blankYour canvas route exists but doesn't mount <StudioCanvas />: add the snippet above
Canvas iframe shows your home pageCanvas URL is /: change it to a dedicated route like /canvas

Optional: LLM-Assisted Setup

npx @contentstack/studio-skills install

Then ask your LLM: "set up the section preview route". It will add the canvas route to your code and set the Canvas URL in Studio.