ADR-0009: Limit Vercel deployments
- Status: Accepted · Date: 2026-05-30
Context
The Vercel Hobby plan allows 100 deployments/day. With the intranet
GitHub-connected (auto-deploy on every push) and our high commit/push cadence —
pushing each commit to both main (production) and the working branch
(preview) — we were exhausting the daily budget.
Decision
Three levers (intranet/vercel.json + intranet/scripts/vercel-ignore.sh):
- No preview deploys. Disable Git deployments for the working branch
(
git.deploymentEnabled), so only the production branch deploys. Previews are verified locally and by CI (.github/workflows/ci.ymlbuilds the intranet). - Path-gated production builds. An Ignored Build Step skips the build when
a commit changes no portal-relevant content (e.g. pure
archive/mirror, manifest, scripts, or CI commits). - Batch pushes. Promote to
mainonce per session/milestone, not per commit — an operating discipline (SOP-003), since eachmainpush is a deploy.
Consequences
- Deployments drop from ~2-per-commit to roughly one per session of portal changes; build minutes are saved on no-op commits.
- Previews are off — rely on
npm run buildlocally and CI for pre-merge checks. - Template note: the disabled branch name in
vercel.jsonis repo-specific; update it (or the production-branch setting) per instantiation.