What is an environment?
An environment is everything one branch needs to run against real integrations: provider apps, OAuth permissions, webhooks, callbacks, credentials, and deployment configuration. Instaship provisions those pieces together and isolates them from every other branch.
Three coordinates identify the contract: an app, a branch, and an environment type such as Preview, Staging, or Production. The app already identifies its connected repository. Mint the same coordinates again and Instaship reuses the healthy environment instead of creating a duplicate.
What gets provisioned
Each selected provider becomes a real resource for the environment. GitHub receives the declared app permissions and events. Slack receives its bot scopes and subscriptions. Linear receives its OAuth permissions, webhooks, and redirect routes. Supabase creates a branch from the selected base project.
Deployment sinks are part of the same ordered run. When Vercel sync is selected, the environment variables go to the chosen project and branch target after the provider steps complete.
Lifecycle
An environment begins as a draft, runs through ordered provisioning, and may pause when a provider needs human approval. A completed environment can be reused. A failed environment is not reused, so a later mint starts with clean resources.
When the branch is finished, cleanup removes its disposable provider resources and synced variables. Workspace accounts, manifests, usage history, and evidence remain available.