Vercel is a deploy kind: the domain’s host as one functionStatus: Proposed. Date: 2026-10-06. hecks deploy project generates AWS stacks. A project whose front end already lives on Vercel can run its domain there too, as one function reading a Postgres database it does not own.
AwsLambda, AwsFargate and AwsBox all create the database and the compute. Vercel creates neither a database nor a long-lived process: a request runs a function, and the database is a marketplace product or an instance the project already has. So the Vercel kind generates configuration and a deploy script, not infrastructure.
deployed_to("Vercel"), as a sibling of AwsBox. Settings: region (a Vercel id, default iad1), memory (MB, default 1024), max_duration (seconds, default 30), stack_name (the project name), scope (the team), crons, env.Deploy::VercelTarget.Declare validates region, memory and duration, so they are in the journal and the OIDC manifest like the other targets. Vercel::Settings checks every other setting against a conservative pattern before anything is written.projects_as :vercel) emits four files: vercel.json (the function’s size, the region, one rewrite that sends every path to api/host, crons), .vercelignore, deploy-vercel.sh and a Makefile.DATABASE_URL; the deploy script always sets it, plus any names in env. A world that declares no database gets none: the projection never creates one.deploy-vercel.sh reads each variable from the caller’s environment (op run -- make deploy) and pipes it to vercel env add --sensitive on stdin, so no value is on a command line or in a file.vercel.json plus the Rust runtime’s own build is what Vercel documents.api/host.rs built on vercel_runtime, not lambda_runtime; rust/host has to gain one (and a [[bin]] name = "host") before a generated project deploys. Until then the generated files are correct but nothing answers at /api/host.