apps/docs/content/guides/deployment.mdx
Deploying your app makes it live and accessible to users. Most apps have at least two environments: a production environment for users and one or more staging or preview environments for development.
Supabase provides flexible options for deployment workflows of various complexity.
You can deploy your Supabase project with GitHub:
main branchThis workflow works on all plans and does not require branching.
If you have branching enabled (on the Pro Plan), you can extend this workflow with preview environments for pull requests.
You can maintain separate development, staging, and production environments:
You can automate deployments using:
main branchNo. GitHub integration is recommended, but you can deploy using the Supabase CLI in your own CI/CD pipeline without connecting a GitHub repository.
No. The GitHub integration and CLI-based deployments work on all plans. Branching (preview environments for pull requests) requires the Pro Plan.
Database migrations in your supabase/ directory, plus Edge Functions and storage buckets that are declared in supabase/config.toml. Other local configuration files (such as API or Auth settings) are ignored by default. See the local development guide for details on the directory structure.
Yes. You can use the Supabase CLI or the Terraform provider in any CI/CD system (GitHub Actions, GitLab CI, CircleCI, etc.).
Use Git branches to work on changes independently and share them with your team. When a change is ready, merge it into main to deploy it to production. If you're on the Pro Plan, you can enable branching to automatically create a preview environment for each pull request, so you can review and test database changes before they go live.
Branching creates isolated preview environments for each pull request, so you can test database changes before merging. It is an optional feature available on the Pro Plan. See the branching guide for details.
Branching gives each pull request its own isolated Supabase environment with a full copy of your database schema (without any production data), so you can validate migrations and test your app end-to-end before merging to main.
Read the self-hosting guides for instructions on hosting your own Supabase stack.
</Admonition>