Caddi
Sign inSign up

Three environments

Production, staging, and development — each a real Vercel deploy on a real branch. Modeled on WPEngine.

The shape

Every Caddi project has exactly three long-lived environments:

  • production on branch main — your live customer-facing site.
  • staging on branch staging — the place clients sign off.
  • development on branch dev — your team’s in-progress sandbox.

URLs

production    meridian.studio                                (your custom domain)
staging       meridian-staging.preview.northstar.dev         (your branded preview)
development   meridian-dev.preview.northstar.dev             (your branded preview)

The branded preview subdomains come from verifying your agency domain in Caddi settings. Each project gets a deterministic <client-slug>-{staging,dev}.preview.<agency> alias automatically.

Env vars

Env vars are per environment and validated against the template’s schema. They’re typed as either secret (encrypted, write-only after create) or plain (visible). You can copy a value from one environment to another or diff the three.

Env-var changes are written to Vercel and to the audit log. There’s no way to change a production secret without a record of who, when, and from where.

Promotion

A promotion is a real GitHub PR from one branch into the next. Caddi opens it, attaches a change summary, and watches the resulting Vercel deploy. If your repo requires PR reviews, Caddi surfaces that gate on the promotion screen instead of failing.

bash
# What Caddi runs, plain-English:
git checkout staging
git pull
git checkout main
git merge --no-ff staging   # PR, not direct merge
gh pr create --base main --head staging --title "Caddi: promote staging → production"

Rollback

Every promotion has a stored commit SHA. Rollback is a one-click operation that opens a revert PR back to the previous SHA — same flow, same audit log entry, opposite direction.