# Test updates with drafts

Normally, publishing an update replaces the live app right away. A **draft**
lets you upload a new build without changing what your team sees: the draft
gets its own private preview URL, you try it out, and you publish (or discard
it) when you've decided.

Drafts are especially useful for apps that use
[connected data](https://volly.so/docs/external-resources) — resource connections only work
once an app is deployed, so a draft is the way to test them safely.

## Save a draft

When publishing from the dashboard, turn on **Save as draft first** in the
publish dialog (or check it on your first upload). Instead of going live, the
build is saved privately and you get a preview link.

If an AI agent publishes for you over [MCP](https://volly.so/docs/mcp), ask it to deploy as a
draft — the `deploy_app` tool has a `draft` option.

## Preview it

Drafts live at their own address: `draft-` in front of the app's normal URL
(for example `https://draft-acme-reports.volly.so`). Only you and the app's
collaborators can open it — even if the live app is visible to the whole
workspace, and no matter who has the link.

Every draft page shows a banner — _"Preview build — not published yet"_ — so
nobody mistakes it for the real thing. Drafts can read the same connected
resources as the live app, so what you see in the preview is what your team
will get.

## Publish or discard

When a draft is pending, the project page shows a **Draft build ready to
test** bar with three actions:

- **Open preview** — view the draft.
- **Publish to team** — the live URL switches to the draft build instantly.
- **Discard** — delete the draft. The live app is untouched.

Agents can do the same with the `publish_draft` and `discard_draft` tools.

## Good to know

- **One draft at a time.** Saving a new draft replaces the previous one.
- **Publishing live discards a pending draft.** If you deploy an update
  directly to the live URL while a draft is waiting, the draft is dropped —
  the dashboard warns you first.
- **Viewers never know.** People who can't edit the project don't see that a
  draft exists, and drafts never appear in the app's cover image or their
  activity feed.
- **No expiry.** A draft waits as long as you like until you publish, discard,
  or replace it.