VibeHost
Reference

Limits

Per-plan and per-runtime caps. Where Enterprise raises caps and where it doesn't.

Defaults below apply to per-workspace scope unless stated. Enterprise plan negotiates higher caps where marked raisable.

Apps & deployments

LimitFreeBusinessEnterpriseRaisable?
Apps per workspace100500per contract
Channels per app50 (incl. production)200per contract
Deployments per app (retained)last 5 per channellast 20 per channelper contract
Workspace members325per contract
Concurrent deploys per workspace525per contract
Deploys per workspace per minute3060per contract

Tarball (deploy artifact)

LimitDefault capRaisable?
Total archive size (compressed)200 MB✓ (Enterprise)
Per-file size50 MB✓ (Enterprise)
Entry count50 000✓ (Enterprise)
Symlinksrejected (security)
Absolute paths / .. traversalrejected (security)
Empty archive (no index.html)rejected

Hitting the entry-count cap is almost always a node_modules leak. Check what you're shipping with vibehost deploy --dry-run --json | jq '.data.fileCount'.

Custom domains

LimitDefaultRaisable?
Hostnames per app25
Hostnames per workspace250
vibehost domain verify retries / min30
DNS verify timeout3 s × 3 retries
Cert provisioning timeout5 min
Subdomain takeover protectionalways on

Redirects

LimitDefaultRaisable?
Platform redirects per app500
_redirects file rulesunlimited (subject to tarball cap)n/a

Personal access tokens

LimitDefaultNotes
Active PATs per user per workspace20Returns PAT_CAP_REACHED (409)
Max scopes per PATunlimitedBut least-privilege is the recommendation
Resource binding (apps allowlist)unlimited per PAT
PAT expiry options30 / 60 / 90 / 365 days / neverSet at issuance
Plaintext shown after issuanceonce, never againServer stores sha256(plaintext) only

API & rate limiting

LimitCapNotes
Anonymous reads to public deploysunmetered
Authenticated API calls per token per minute600Returns RATE_LIMITED (429); see headers for Retry-After
Failed auth attempts per IP per minute30After threshold, IP is blocked for 5 min
vibehost workspace invite per workspace per day50Anti-abuse
vibehost app share-link create per app per hour60Anti-abuse

Storage

ResourceFreeBusinessEnterprise
Storage for live deploymentsunmetered (within app count)unmeteredper contract
Egress bandwidthunmetered for *.vibehost.space; custom-domain bandwidth via your DNS providerunmeteredper contract
Log retention7 days30 daysper contract
Audit log retentionworkspace-lifetimeworkspace-lifetimeworkspace-lifetime

Build (when --build server)

vibehost deploy --build server runs your build inside a sandboxed server-side builder for agents that can't build locally. Defaults:

ConstraintCap
Build wall time10 min
RAM4 GB
Disk10 GB
Network egressnpm + GitHub allowlist
npm install parallel jobs4

For most cases (--build client, the default), these don't apply — your machine builds.

What's not a limit

  • Deploys per app is uncapped beyond the rate-limit. Iterating fast is fine.
  • Channels are slot-based, not lifetime-based. Delete unused channels to free slots.
  • Apps don't expire on free tier. Replit-style "Always-on" doesn't apply — your app stays live as long as your workspace exists.
  • Per-app users don't have to be in your workspace. Email grants work on outside emails (invite-before-signup).

When you hit a limit

Error codeWhat to do
RATE_LIMITEDWait the Retry-After window; check vibehost doctor for unusual CLI loops
QUOTA_EXCEEDEDUpgrade plan, or delete unused apps / channels
PLAN_LIMIT_EXCEEDEDSpecific feature requires paid tier
PAT_CAP_REACHEDRevoke old PATs at vibehost.com/account/tokens
TARBALL_INVALID (count exceeded)node_modules likely leaked into the build — exclude it

See errors reference for the full code list.

See also

On this page