Skip to main content

States

Environments and instances share one status:
degraded is soft — redeploying the failing component flips it back to healthy.

Primary instance

New environments enable the primary by default, and deploy it as soon as they’re created — both from Deploy a repo and from the composer (untick it there for a definition-only environment). With the primary off, an environment is a pure definition — it runs nothing until a PR spawns a preview or you press Deploy now. Turning the primary on later (Enable primary on the Deployments tab) brings up an always-on instance at the tracked refs immediately; turning it off tears it down. The primary is the one instance with no TTL — it stays up until you disable it. Each deploy first syncs it from the definition, so composition, variable, and domain edits ship on the next deploy.

PR previews

The PR’s component runs at its branch; siblings are pinned to the commit they spawned with, so a preview is reproducible. If a sibling’s branch has moved on and you want the preview to pick it up, use Refresh (below).

Destroying a preview early

You can destroy a preview from its deployment page while the PR is still open (Destroy, developer role or above). The namespace and URLs are removed, and the PR comment updates to say the preview was destroyed, with a link back to the page. A destroyed preview stays down: pushes to the PR do not rebuild it. While the PR remains open, Recreate on the same page brings it back with the same URLs; once the PR closes, recreating is no longer offered — reopen the PR instead.

Dev instances

A dev instance is a full copy of an environment spun up from sw dev up to test a branch. It’s tied to the CLI session: the CLI heartbeats to keep it alive, Ctrl-C tears it down, and if the CLI dies it’s reaped within a few minutes. A hard cap limits it regardless — your plan’s manual/dev lifetime.

Manual instances

A manual instance (Deploy now) is a disposable copy at the latest tracked commits. Pushes don’t touch it — use its Deploy latest to re-resolve every ref to HEAD and pull the environment’s current variables and secrets. It expires on a one-shot TTL.

TTL

Lifetimes come from your plan, not the composer, and each kind of instance gets its own clock. The clock starts at healthy, so build time never eats your window. Your live values are on Settings → Billing.

Refresh

Refresh on an instance re-resolves every sibling component (not the PR’s own) to the parent environment’s current tracked-ref HEAD and redeploys them. Use it when a sibling’s main has moved on since the PR opened.

Teardown

Teardown supersedes every in-flight component deploy and removes the instance. The row and its log stay for history. Tearing down a base environment doesn’t cascade to its active PR previews — close the PRs (or tear down each instance) to remove those. When a preview is torn down for any reason (PR closed, destroyed from the console, or expired), its PR comment is updated so it never advertises URLs that no longer resolve.