Vercel's free plan doesn't allow commercial use, and going legitimate there costs $20 a seat. This is the $7 middle: 150 GB of fast global CDN, real server-side compute that sleeps when nobody's visiting and wakes in 4–36 ms, and a hard spend cap so the bill can't surprise you.
Card required — the $7 is the trial. Cancel in one click, no retention maze.
* Vercel list pricing for Washington D.C. (iad1), from their regional-pricing page — their rates vary by region and other regions cost more. Their free tier has no usage billing — you hit limits instead. Verify against their current published plans; the calculator tells you when they're cheaper, too.
Nobody visiting? Your app sleeps and bills nothing. The next request wakes it in 4–36 ms — no cold-start tax, on the cheapest plan we sell.
Your worst-case bill is a number you set — $20/mo by default. We stop before it, not after. No surprise invoice, ever.
SSR, API routes, ISR and server actions run in a Firecracker microVM with 2 GB and a full vCPU — not a stripped-down edge sandbox.
Static assets and cached pages served from a global edge network. 150 GB of US/EU traffic is included in the $7.
Attach up to 5 custom domains. Certificates are issued and renewed for you. Commercial use is allowed — that is the whole point.
Every branch gets its own stable preview URL. No injected toolbar, no badge on the page — safe to send straight to a client.
The no-cold-start claim is measurable, so we published it: put an app to sleep and wake it yourself →
The most you can be billed in a month. Usage past the $7 credit is metered at $0.0053/GB-hr and $0.064/CPU-hr, and we stop at the cap — before it, not after. Only you can raise it.
Your Next.js app and the Go or Python API behind it are two projects in the same list, metered on the same rates, capped by the same number, on one invoice. No second vendor for the backend, no second bill to reconcile.
Frontends and backends side by side. Deploy from a repo or a Docker image; the frontend reaches its API by URL from its environment variables.
Memory at $0.0053/GB-hr and active CPU at $0.064/hr, whether the process is Node or Go. Both sleep when idle and bill nothing asleep.
The $20 spend cap covers everything on the account. Add a managed Postgres and it meters on the same invoice.
Computed from the published rates. Two apps, a quiet month: the usage credit absorbs it.
Zero-config builds via framework detection. Next.js is what we test hardest — a corpus of a few hundred apps runs against every change.
Any language that listens on a port. The detector picks the build for the frameworks below; anything else ships as a Docker image.
Also detected: Gatsby, Hugo, Jekyll, Vite, Create React App, Fastify, Gin, Echo, Fiber, Axum, Actix, Rocket, Symfony, Sinatra, Ktor, Quarkus, Vapor... 114 in total, counted out of the detector rather than rounded up — plus Android, iOS, Flutter, which it recognises only to tell you it can't host them.
No add-on, no sales call, no Enterprise tier — there isn't one to sell you. Each row says what the same thing costs elsewhere and links to the page we read it on, including the rows where the honest answer is "they do that too".
Put a password on an app, or share it with named people by email, by verified email domain, or with a revocable link. Protect everything or just the branch previews. CI gets its own rotatable bypass secret so your tests still run. Included on every plan we sell — there is no protection add-on to buy.
Elsewhere — Vercel password-protects a project for "$20 per month per protected project" on Pro, and "Not available on Hobby"; teams still on their legacy Advanced Deployment Protection package pay $150 a month per team. Restricting by IP address (Trusted IPs) and signing in through your own identity provider (Passport) are each "Available on the Enterprise plan". To be fair to them: letting in people who already have a Vercel account is free on every plan, and so is protecting production.
A managed Postgres on every paid plan, in the same console as the deploy: a spreadsheet-style table editor, a SQL editor, a schema view and advisors that read your database and tell you what is wrong with it. The connection string arrives in your app as DATABASE_URL without you copying anything.
Elsewhere — Vercel has no Postgres of its own. Its first-party storage is Blob and Global Config; relational data comes from the Marketplace, from "providers like Neon, Upstash, and Supabase", provisioned with one "vercel install neon", and Vercel "injects provisioned resource credentials as environment variables". That is a second vendor, a second console and a second invoice.
Every project is served through Coraza with the OWASP Core Rule Set rendered into its route and enforcing — including for an account that has never opened the Firewall page. Your own IP, country and path rules sit on top of it, and nothing about it is metered.
Elsewhere — Vercel has a firewall on every plan, including the free one — that part is not the difference, and we are not going to pretend it is. The difference is the managed ruleset: their own limits table lists WAF Managed Rulesets as "N/A" on Hobby, "N/A" on Pro and "Contact sales" on Enterprise. Once you have it, inspection is a meter of its own: $0.80 per million inspected requests and $0.20 per GB of inspected payload in their Washington D.C. region.
The Next.js app and the Go, Python or Rust service behind it are two projects in one list, on one invoice, under one spend cap. Each one also gets a private hostname that only your other apps can reach — it is bound to a host-local address and refuses callers from another account — and anything that is not Node ships as a container image. Private calls are not metered: there is no per-call meter on this platform at all.
Elsewhere — Vercel can do this too now, and it would be dishonest to imply otherwise: Services (in beta) put "multiple backends and frontends within a single Vercel project", a service can be built as a container, and one service can call another "without going through the public internet". What differs is the bill — "each call counts as one service request", priced from $0.50 per million in their Washington D.C. region, on top of the compute.
Point us at the repo you already have. We read vercel.json — redirects, rewrites, headers, cleanUrls, trailingSlash, and the build settings: framework, buildCommand, installCommand, outputDirectory, ignoreCommand — and netlify.toml, _redirects and _headers the same way. Keys we do not act on are written into the build log as ignored rather than dropped in silence, so you find out at build time and not in production.
Elsewhere — There is no competitor price on this row, because this one does not cost money anywhere — it costs an afternoon. It is here because "will my config come with me" is the question that actually stops a migration, and the answer is a list you can check rather than a promise.
* Competitor wording is quoted from the linked pages, checked 25 September 2026. They move their prices; if a line here has gone stale, tell us and it goes.
Easier to read this now than to discover it after you've migrated. If any row is a dealbreaker, we'd rather you knew today.