Studio Docs

Canvas URL

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.

Do It With a Skill

curl -fsSL https://studio-documentation.contentstackapps.com/install.sh | sh

Then ask for setup-section-preview, or say ”set up the section preview route”. It writes the canvas route into your code and prints the exact Canvas URL to paste into project settings. Setting it is a browser step, so that half stays with you.

For the concept rather than the wiring, understand-canvas-url explains why it must be a relative path and how it differs from the environment’s Base URL.

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

In Studio, open your project and go to Settings, then Configuration.

Canvas URL field in project Configuration

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

When the Canvas URL is Used

ActionUses canvas URL?
Opening a section to author or previewYes
Building / verifying a section in isolationYes
Opening a templateNo: templates use their own URL patterns
Visitors loading a published pageNo

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

Next