---
title: 'Deploy to production'
description: 'Publish Studio and its handler alongside the intended schema.'
---

# Deploy to production

Production readiness requires both a deployed schema and a hosted application. Start from a working framework quickstart and use a development project to rehearse changes.

## Prepare the application

- Keep the intended `projectId`, Studio base path, and extension configuration explicit.
- Install all referenced packages and include their CSS.
- Deploy the framework server handler alongside the Studio pages; static files alone are insufficient.
- Keep tokens and tool signing secrets in the server environment, outside public client variables.
- Configure the actual production origin and routing, including deep Studio links.

## Deploy and verify

1. Validate a data export before a schema change that could remove or transform data.
2. Deploy the schema with the [CLI](/docs/cli/deploy) and inspect completion.
3. Build and deploy the application with its framework hosting workflow.
4. Open the hosted URL in a fresh session and sign in.
5. Check Desk data, a bounded Explorer query, styles, deep links, and access restrictions.
6. If using custom tools, configure the production URL, sync, and verify a harmless invocation.

## Recovery boundaries

Rolling back application code restores that application's previous behavior; it does not reverse a backend schema change or an external tool side effect. Follow [schema migration guidance](/docs/schema/deployment-and-migrations) and inspect actual state before retrying work.

Use [Logs](/docs/dashboard/logs), [Run History](/docs/automations/runs), and the project restriction banner to choose a recovery path. Keep the application and schema versions aligned during an upgrade.


---

[View full sitemap](/docs/sitemap.md)
