Environments let you run separate copies of your app — typically development, staging, and production — each with its own configuration.
Default setup
Every project gets a default environment. You can add staging and production environments from the project page.
Auto-deploy per branch
Tie each environment to a branch so pushes flow automatically:
deploy:
environments:
staging:
branch: develop
production:
branch: main
require_approval: true
Now pushing to develop deploys staging, and pushing to main proposes a production deploy that needs manual approval.
Environment variables
Each environment has its own variables, so you can use different API keys, database names, or feature flags per environment. Secrets are stored encrypted.
Why separate environments matter
You catch problems in staging before they reach real users, and production stays stable because it only changes through a controlled, reviewed process.