Vercel
The Vercel provider deploys supported applications in a Vercel account you own. Its deliberately verified subset covers Next.js, Vite SPAs, Vite frontends with Hono APIs, standalone Hono APIs, and static sites.
Bahama uses Vercel’s official CLI to select the account, create or adopt the project, set declared production variables, deploy source, and verify the production URL.
Ask your agent to use Vercel
Deploy this application to my Vercel account with Bahama. Handle the setup and
commands, show me any account choice, and stop before the first deployment so I
can review the plan.Your agent confirms the current provider contract before editing the manifest:
bahama providers vercel --format agentDescribe the environment
application:
framework: nextjs
environments:
local:
provider: local
production:
provider: vercelThe production environment may consume values from other resources. A
Postgres connection from Neon, for example, can arrive as DATABASE_URL
without appearing in the manifest or conversation.
Supported application shapes
| Manifest framework | Vercel project preset |
|---|---|
nextjs | nextjs |
vite-spa | vite |
vite-hono | vite |
hono-api | hono |
static-site | Other |
Keep the portable application shape accurate. A Vite + Hono application is
still vite-hono even though Vercel uses its native vite preset for the
project. The repository must already expose Hono through a Vercel-compatible
entry or function-routing layout; Bahama does not generate provider-specific
entry files or rewrite source.
For vite-hono and hono-api, set config.healthPath on the Vercel
environment to a public backend route that returns HTTP 2xx or 3xx:
environments:
production:
provider: vercel
config:
healthPath: /api/healthBahama verifies that route after Vercel reports the deployment ready. Other
Vercel shapes default to /.
Vercel itself supports more frameworks than this Bahama driver currently models. The live provider descriptor is the authoritative list of application shapes Bahama can plan, execute, and verify end to end.
Install and sign in when asked
If the official CLI is missing, Bahama returns the installation command. Your agent should ask before running it globally:
npm install --global vercelBahama requires Vercel CLI v51 or newer for structured deployment IDs and resumable readiness checks.
When authentication is required, the agent starts:
bahama auth login vercelYou complete Vercel’s login flow. The resulting credentials remain in Vercel’s own store; Bahama does not ask you for a token or copy it into the project.
Choose the correct account
A Vercel login can see a personal account and several teams. Bahama does not silently accept whichever account the Vercel CLI used last.
When more than one choice is available, the plan returns decision required.
Your agent presents the real names and writes your selection to the exact path
Bahama provides:
environments:
production:
provider: vercel
config:
scope: example-teamscope is a safe account selector. Durable account and project IDs belong in
bahama.lock, not the manifest.
What Bahama manages
- the selected Vercel account and project;
- creation or exact-name adoption of the project;
- declared production environment variables;
- production deployment from the current workspace;
- readiness polling and live URL verification; and
- status and drift against the committed lock.
Domains, billing, previews, and the rest of the Vercel account are not currently managed by Bahama.
Deploy and iterate
The first deployment waits for your approval:
bahama deploy productionAfter the project and environment are verified, ordinary code-only deployments
are routine. A changed vercel.json, framework mismatch, new binding, pending
migration, or different provider account makes deployment consequential again.
Bahama pins the planned project and account. A stray .vercel/project.json
cannot redirect the deployment, although the agent may receive a warning about
the mismatch.
If the Vercel project is deleted while another resource remains healthy,
keep bahama.lock and re-plan. Bahama can replace the missing application
project without replacing the database.