Playground Canvas: try Studio without setting up an app

View as Markdown
Last updated September 14, 2026

Playground Canvas is a built-in Studio canvas that lets you author compositions without setting up a canvas-app in your own codebase. Studio hosts the iframe. The playground ships with Studio's default components. No <StudioCanvas /> route, no Canvas URL configuration, no SDK install in your app.

It's the fastest way to try Studio, build a demo, or sketch a composition before investing in the full integration. Once you're ready to ship to production, you graduate to a regular Canvas URL pointing at your own app.

When you get Playground Canvas

You're on Playground Canvas whenever your project has no Canvas URL configured. Studio checks:

Click to enlarge

You don't pick Playground explicitly: it's the default until you set a Canvas URL on the project (Configure environment + language + canvas URL).

What you can do in Playground

FeaturePlaygroundWebsite Canvas (your app)
Drop Studio's built-in components onto the canvasYesYes
Drop your own registered componentsNo: Studio's playground iframe has no access to your component registryYes: Studio loads your SDK + components from your app
Build sections and templatesYesYes
Bind components to real CMS data (entries, references)YesYes
Save compositionsYesYes
DeployNo: disabled in playgroundYes
Preview the composition against a real visitor URLNo: the playground is the only previewYes, via your template preview routes

The deploy button is greyed out in playground mode with a tooltip:

"Deployment is disabled in the playground. Set up an app and configure the base URL in the settings to enable deployment."

Why use Playground

  • Onboarding: try Studio in 60 seconds before convincing your team to wire up the SDK
  • Sketching: block out a section's layout while engineering is still building the components
  • Demos & POCs: share a composition without a deployment story
  • Internal training: content authors learn the UI without needing a live app
  • Evaluation: see whether Studio's authoring model fits your workflow before integrating

Authors who started in Playground keep their compositions when the project is later wired to a Website Canvas: the data model is the same.

Limits of Playground

  • Studio's default components only. Your design system isn't in scope until you set up a Website Canvas. The cards, heroes, and buttons you see are Studio's defaults, useful for shape, but they won't match your brand.
  • No external Component Default Data. The data prop on <StudioComponent /> is set by your app. Without an app, there's no place to pass external pricing / variants / feature flags from. You can still bind to CMS entries via the Data Picker, but there's no external-data hook yet.
  • No deploy. Whatever you build sits in your Studio project. Visitors can't see it until you set up a Website Canvas + template preview routes (Wire template preview routes).
  • Internal-only preview URL. The PLAYGROUND_HOST_URL is Studio-internal: you don't need to know or set it. Studio uses its own.

Graduating to a Website Canvas

When you're ready to ship to your real site:

  1. Build your app's canvas route mounting <StudioCanvas />
  2. Wire your template preview routes with <StudioComponent specOptions={...} />
  3. Set the Canvas URL on your Studio project (Configure environment + language + canvas URL), the route path only, e.g. /canvas. The origin comes from the targeted environment's per-locale Base URL (your dev origin locally, your production origin in prod), not this field.
  4. Register your components in your canvas-app so they appear in Studio's palette
  5. The compositions you built in Playground still exist. They just now render against your components and your design tokens

The transition is one-way: once the Canvas URL is set, Studio uses it for all canvas previews on this project. You can clear the Canvas URL to drop back into Playground mode, but the typical workflow is to start in Playground, move to Website Canvas, and stay there.

Common pitfalls

PitfallSymptomFix
Expecting your custom components in PlaygroundPalette shows only Studio's defaultsSet the Canvas URL to point at your app, then your registered components show up
Trying to deploy from PlaygroundDeploy button greyed out + tooltip about base URLSet a Canvas URL on the project. Deploy becomes available
Building a composition in Playground, then setting Canvas URL, components disappearYour custom components were never in Playground. The dropped Studio-default components don't auto-swapRe-author the canvas tree against your registered components, or set the Canvas URL first, then author
Confusion between Playground (Studio-hosted) and your canvas-app (<StudioCanvas /> route)Authors don't know which iframe they're looking atStudio's loading message reads "Using playground environment" when on Playground. The canvas top bar surfaces a "Configuration" gear that lets you check + set the Canvas URL

How it fits with the rest of Setup

StepWhere you areWhat's running
Created a new Studio project, no Canvas URL setPlayground CanvasStudio's hosted iframe + Studio's defaults
Set a Canvas URL pointing at localhost during devWebsite Canvas (dev)Your canvas-app at localhost:<port>/canvas
Set a production Canvas URLWebsite Canvas (prod)Your production canvas route

The Canvas URL is the single switch.

See also