An environment is a complete, separate copy of your backend: its own database, users, files, rules, keys and secrets. You build in development, check in staging, and serve real people from production. Nothing you do in one affects another.

Where

The environment picker is in the top bar of Studio. Each environment has its own sidebar of everything in these docs. Project → Environments lists them all and creates new ones.

What is separate

Your app chooses the environment with its key and the environment option:

Create an environment

  1. Project → Environments → New environment.
  2. Name: lowercase letters, digits and dashes (for example staging).
  3. Optionally Copy from another environment to start with its definitions (tables, rules, flows, templates…). Definitions are copied; never secrets, keys, users or data.
  4. Create.
A new environment comes with its own publishable and secret keys, shown once when it’s created. It starts empty of data: if you copied definitions from another environment, its tables are created, with no rows.

The default environment

One environment is the default. It answers requests that name no environment. Change it under Settings → General of the environment you want.

A release routine

  1. Build and test in development.
  2. Take a backup of production.
  3. Promote to staging and test again.
  4. Promote to production.
  5. Watch Activity for errors.

Good practice

  • Keep production locked down: few people open Studio there, and changes arrive by promote.
  • Use different keys per environment. Never reuse a production secret in development.
  • Don’t copy production data into development without removing personal details.
  • Name environments for their purpose, not for a person.

Promote

Copy definitions forward safely.

Previews

Short-lived copies for a branch or pull request.

API versions

Serve v1 and v2 side by side.

Environment settings

Defaults, API access and maintenance mode.

API keys

Create, limit and rotate keys.

Custom domains

Serve an environment on your own hostname.