Editorial hold, September 8, 2026: Leo considers the writing in the group reviewed for portfolio use close to unreadable in its current state. This piece needs substantial revision before being recommended as a writing sample. Publication is not editorial approval.
By late afternoon, Vercel had stopped accepting builds from Scrapbook. No champagne was involved.
The Hobby plan allows 32 builds in a rolling hour and 100 deployments in a rolling day. A Next.js deployment counts as a build. The live GitHub check was named build-rate-limit, so the smaller number had arrived first: thirty-two builds in an hour.
That sounds like a lot until a few branches are alive at once. An implementation push spends one. So does the type-error repair. So can a conflict resolution, a copy edit, a retry, another agent landing first, and the merge to production. To the person doing the work, those can all belong to one afternoon and one idea. Vercel sees launches.
Cancelled work can spend quota too. Vercel's Ignored Build Step runs after a deployment has been created, so an ignored or cancelled build can still consume the thing you're trying to conserve.
The annoying lesson was simple: the cheapest deployment is the one that never starts.
Most branches don't need a website
A preview has a job. Somebody needs to see the deployed result, or the question depends on Vercel itself: routing, headers, cookies, serverless behavior, image handling, a production-like URL, whatever.
Lint doesn't need one. Vitest doesn't need one. A production build doesn't need one. Prose definitely doesn't need one.
Scrapbook eventually made that distinction literal. Automatic Vercel deployment is now deny-by-default for Git branches:
main -> production
preview/** -> preview
anything else -> no automatic Vercel deployment
If an ordinary branch reaches a point where a deployed URL becomes useful, one commit can carry [preview]. A small GitHub workflow promotes that exact commit onto preview/opt-in/<source-branch>, which is inside the allowed preview namespace. If the whole branch wants a live URL, work directly on preview/....
There's still an ignored-build script as a final safeguard for deployments that reach Vercel through another route. The quota-saving decision happens earlier, at git.deploymentEnabled, before the routine branch launch exists.
That is a better policy than the first version of this essay described. Originally Scrapbook auto-deployed feature/** and fix/** while skipping obvious prose and maintenance branches. It helped, then the repository kept getting busier and the distinction became silly. Plenty of feature branches are source-only. Plenty of fixes can be reviewed from tests and a build. The useful question is whether a deployment adds evidence.
CI and browser review get their own jobs
Routine hosted CI stays cheap: ESLint and Vitest in one lane, production Next.js build in another. Browser work is explicit. If the change depends on responsive geometry, pointer behavior, focus, storage, canvas, hydration, or another browser fact, run the browser check that answers that question.
A Vercel preview comes after that when the hosted environment or shareable URL changes the decision.
This sounds like fussy accounting until the alternative is watching a typo help consume the same hourly allowance as the preview somebody actually needs.
Agent work makes cheap generation visible
The funny parallel is writing.
Another draft is nearly free. Another branch is cheap. Another agent can happily produce another version before anyone has read the previous one. The scarce part moves downstream: reading, comparing, deciding, and keeping the version worth keeping.
Workbench metadata exists partly because of that. Git already remembers every line. The editorial record remembers whether a piece is a draft, whether somebody revised it on purpose, and why the revision happened.
The first version of this piece leaned harder on launch ceremonies and copy-desk metaphors than the subject deserved. The second got closer. Then Scrapbook's deployment policy changed again, and the essay itself became evidence for its own argument: small operational rules drift; the useful writing has to follow the system.
So the current rule is pleasantly boring. Ordinary branches do the work. CI checks what CI can check. Browser review appears when the browser has something to say. A preview gets created when a preview can change someone's mind.
Thirty-two lasts much longer that way.