Deployment & Branching
Deploying your app makes it live and accessible to users. Usually, you deploy an app to at least two environments: a production environment for users and (one or multiple) staging or preview environments for developers.
Supabase provides several options for environment management and deployment.
Environment management#
You can maintain separate development, staging, and production environments for Supabase:
- Development: Develop with a local Supabase stack using the Supabase CLI.
- Staging: Use branching to create staging or preview environments. You can use persistent branches for a long-lived staging setup, or ephemeral branches for short-lived previews (which are often tied to a pull request).
- Production: If you have branching enabled, you can use the Supabase GitHub integration to automatically push your migration files when you merge a pull request. Alternatively, you can set up your own continuous deployment pipeline using the Supabase CLI.
Self-hosting
Read the self-hosting guides for instructions on hosting your own Supabase stack.
Deployment#
You can automate deployments using:
- The Supabase GitHub integration (with branching enabled)
- The Supabase CLI in your own continuous deployment pipeline
- The Supabase Terraform provider