# Deployments

When you're ready, publish your changes so your app goes live with them. Choose where it runs based on
how far along you are.

## Configure

### Publish your changes

Configuration changes — new entities, plans, settings — take effect when you **deploy**. Until then
you're editing a draft; deploy to push it live.

### Shared or dedicated

| | What it is | Best for |
|---|---|---|
| **Shared** | Runs on Foundation's shared infrastructure | Getting started, side projects, early stage |
| **Dedicated** | Your own isolated compute, database, and storage | Production, businesses, higher capacity |

Dedicated adds your own [custom domain and SSL](/platform/domains) and full OAuth-provider
capabilities — e.g. "Login with Google" for *your* users.

### Moving between tiers

Start shared, go dedicated when you're ready — Foundation handles the migration.

## Use in your app

Deployment isn't something your frontend calls — it's how your app gets shipped. What your app's
**repository** needs in order to deploy (required files and environment values) is the deploy
contract:

→ [Deploy contract](/agents/foundation-deploy-contract.md)

## Reference

- [Deploy contract](/agents/foundation-deploy-contract.md) — required files and env for your app repo
- [Domains & SSL](/platform/domains)
