Glossary
Every term that appears across the docs, in one place.
VibeHost uses a small set of recurring terms. Keep this page open while you're new. Once the model makes sense, you won't need it.
App
One deploy target. An app has a runtime (currently static), a visibility, a set of channels, a set of grants, and a primary URL. Create one with vibehost app create <name>. The name is unique within a workspace, lowercase, [a-z][a-z0-9-]*, and 2 to 40 characters long.
An app isn't a "project". One product is sometimes several apps.
Alias URL
The URL that moves with the current deployment on a channel. The format is https://<app>-<workspace>.vibehost.space for production and https://<app>-ch-<channel>-<workspace>.vibehost.space for other channels. This is the URL to share with people.
It isn't the per-deployment immutableUrl, which vibehost.com doesn't provide yet.
Audit log
A workspace-scoped record of every mutation: grants, deletes, visibility and password changes, role updates, custom-domain attaches, and self-grants. Only owners and admins can read it, with vibehost audit. Entries are kept for the life of the workspace and never deleted.
Bearer token
The auth scheme for the API. Send Authorization: Bearer <token>, where <token> is a PAT, a device-flow token (from vibehost login), or an OAuth access token (from MCP).
Builder (server-side)
The sandboxed server-side build. vibehost deploy sends nextjs and node apps to it by default (--build auto), and --build server asks for it explicitly. A static app never goes through it: you upload what you built.
Channel
A named slot for deployments. The default is production. Each channel has its own alias URL. Names follow [a-z][a-z0-9-]*, are 1 to 32 characters long, and can't contain underscores. See channels.
A channel isn't a git branch.
Client build
The build (npm run build, etc.) runs on your machine, and the server only accepts the artifact. Every static app deploys this way, and --build client opts a nextjs app into it. A node app has no client build.
The alternative is a server build, which runs in the sandboxed server-side builder.
Deployment
An immutable artifact plus a runtime config, identified by its deployment ID. Deployments survive rollback by design, since a redeploy doesn't delete old ones. vibehost gc prunes them.
Email grant
A per-app grant attached to an email address. It works before the invitee signs up. When they first log in with the matching email, the grant takes effect. See grants.
Gate
A check that a viewer's request must pass. The four gates are visibility, grants, password, and share link. They AND-compose, so a viewer must satisfy every active gate.
immutableUrl
A deployment field meant to hold a URL pinned to that one deployment, one that wouldn't move with rollback or promote. vibehost.com doesn't create these URLs yet, so new deployments return null. Deployments from before late April 2026 may still show a stored immutableUrl in vibehost app inspect, but that URL no longer resolves. Don't rely on the field either way until this page says otherwise.
To refer to one version today, record its deployment ID (data.id in the deploy response). vibehost pull --app <app> --deployment <id> downloads that deployment's files, and vibehost rollback points the channel alias back at the previous deployment.
MCP server
VibeHost's Model Context Protocol server at https://api.vibehost.com/mcp. It lets Claude, Cursor, ChatGPT, Codex, and other clients drive VibeHost through tool calls instead of the CLI. It uses OAuth 2.1 with PKCE. See the MCP guide.
PAT (Personal Access Token)
A long-lived bearer token for callers that don't use OAuth, such as CI and scripts. A PAT is scoped by action category, can be restricted to specific app IDs, and belongs to one workspace. You manage PATs only in the dashboard. The PAT management endpoints reject PAT auth, so one PAT can't mint another. See PATs.
Promote
vibehost promote <deploymentId> --to-channel <channel> moves an already-uploaded deployment into another channel without uploading it again. The bytes don't change, only the channel alias moves, so the bytes you tested are the bytes that ship.
On vibehost.com, promote currently fails for static apps with an INTERNAL error. Until that's fixed, deploy the same build output to the target channel with vibehost deploy --channel <channel>.
Pull
vibehost pull <app> downloads a live deployment's release directory to your machine. It works for static apps only. It lets teams sharing access treat the deployment itself as the source of truth.
Rollback
vibehost rollback --app <app> points the channel alias at the previous healthy deployment. It doesn't delete anything. The deployment you rolled back from is kept until vibehost gc prunes it.
Runtime
The execution model for an app. static is generally available, and the nextjs and node server runtimes are in private beta. You set it per app at app create. It can't be changed in place, so to switch, create a new app and deploy again. See runtimes.
Share link
A URL that sets a cookie and grants temporary access to an app without sign-up. Anyone with the URL can use it. The cookie is bound to the share link, not the visitor. Each link can be revoked and has its own expiry. See share links.
Supersede
When a new deploy lands on a channel, the previous deployment is superseded. It's no longer the alias target, but it isn't deleted. vibehost gc prunes old superseded deployments.
Team
A sub-group of members within a workspace, used as a grant target. "The Web team has deployer on all marketing apps" is one grant instead of one email grant per person. A team has its own member roles (member, manager, owner), and its slug appears in URLs.
A team isn't a billing boundary. The workspace is.
Tenant
A VibeHost-hosted app seen from its user's side. Tenant apps run isolated from each other and share no process with VibeHost or with other tenants.
Visibility
Per app, one of public, workspace, or private. It's the first gate. Public means anyone, workspace means any workspace member, and private means an explicit grant is required. Visibility composes with the other gates.
Workspace
The billing and admin boundary. A workspace owns apps and teams and has workspace-level member roles (owner, admin, member). A user can belong to several workspaces. The CLI defaults to the one stored in ~/.config/vibehost/config.json.
A workspace isn't a team. Teams live inside a workspace.
Workspace member roles
owner can do everything admin can, plus billing and deletion. admin can do everything member can, plus manage the workspace and see all apps. member belongs to the workspace, and app grants decide what it can access.
App-level roles
Granted per app, either by team or by email:
viewercan view deployments and see logs.deployercan do whatviewercan, plus push deploys, promote, and roll back.admincan do whatdeployercan, plus manage grants, settings, and custom domains.
See also
- Concepts explains the same terms in prose.