## Publishing

Cofounder has two separate ship steps:

1. **Publish to staging (preview)** — put finished agent work into the shared review environment
2. **Publish to production** — promote what is already on staging to the live app or website

For the staging step, the Engineer (or another coding agent) can request a deploy when the work is ready. You approve that handoff as **Publish to Staging**. For production, you (or Cofounder) use the workspace **Publish** flow.

## Staging Vs Production

**Staging** is the shared place to review and test changes before customers see them.

- it is the default review surface for the managed app and marketing site
- it is where you check that a change looks and behaves right after an agent finishes work
- for app work, it can use a separate staging backend so review does not touch live data

**Production** is what real users hit.

- it is the live app or website
- only promote to production after staging looks good
- for app work, it continues using the production backend

## The Two Steps

### 1. Publish to staging

How it works at a high level:

1. An agent finishes work in its sandbox.
2. The agent requests a deploy for the app or marketing target.
3. Cofounder prepares the handoff and asks you to approve.
4. In the agent workspace, approve with **Publish to Staging** (or reject).
5. On approval, the change lands on staging.

Once staging is updated:

- the managed staging / preview deployment refreshes for that target
- for app work, staging continues to use the staging backend
- for database migrations, the staging apply path can run after the change reaches staging

Requesting a deploy does not publish production. It only ships work into staging.

### 2. Publish to production

Publishing to production is how changes move from staging to the live app or website.

You can publish from the publish button in Canvas, or ask **Cofounder** to publish for you.

In either case, Cofounder runs the publish flow for the app or marketing target you selected, and gives you a place to review readiness before the live environment updates.

Once production is updated:

- the live app or website reflects the published changes
- for app migrations included in that publish, production migrations can run after the live promote

## What Agents Should Use

| Goal | Flow |
| --- | --- |
| Ship finished agent work to staging | Request a deploy, then approve **Publish to Staging** |
| Ship staging to production | Workspace **Publish** / ask Cofounder to publish |

After finishing code changes, agents should request a deploy as the normal handoff into staging. Staging is the review step. Production is the live promote.

## Environments

Publishing uses the staging and production environments that Cofounder sets up during onboarding.

## Next Steps

- [Requesting a deploy](https://docs.cofounder.co/publishing/request-deploy)
- [Environments](https://docs.cofounder.co/publishing/environments)
- [Migrations](https://docs.cofounder.co/managed-services/migrations)
- [Managed Services](https://docs.cofounder.co/managed-services/overview)
- [Vercel](https://docs.cofounder.co/managed-services/vercel)
