Commercial Next.js hosting. Pebble pricing.

Ship Next.js for
$7 a month.
Not $20 a seat.

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.

Price readout USD / month
$7 base · $7 usage credit included
Vercel Pro
$20/seat
Vercel Hobby
$0· no commercial use
Table 01 — read it and switch

The comparison they don't publish.

Metric
Ratna
Vercel Hobby
Vercel Pro
Price / month
$7
$0
$20 / seat
Commercial use
Allowed
Not allowed
Allowed
CDN bandwidth included
150 GB US/EU
100 GB
1 TB
Cold starts
None — 4–36 ms wake
Reduced, not removed
Reduced, not removed
Provisioned memory
$0.0053 / GB-hr
—
$0.0106 / GB-hr
Active CPU
$0.064 / hr
—
$0.128 / hr
Requests & invocations
Not metered
—
$0.6 / M
Spend cap
$20 default, you set it
—
Optional

* 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.

Capabilities
01

Sleeps when idle, wakes instantly

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.

02

A hard spend cap

Your worst-case bill is a number you set — $20/mo by default. We stop before it, not after. No surprise invoice, ever.

03

Real server-side compute

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.

04

Fast global CDN

Static assets and cached pages served from a global edge network. 150 GB of US/EU traffic is included in the $7.

05

Your domain, HTTPS automatic

Attach up to 5 custom domains. Certificates are issued and renewed for you. Commercial use is allowed — that is the whole point.

06

Clean branch previews

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 →

Pricing

One plan. The worst case is printed.

Hobby
$7/mo
  • 150 GB of US/EU CDN bandwidth
  • $7 of usage credit every month
  • 20 projects · 5 custom domains · HTTPS
  • 2 GB memory + 1 vCPU per app
  • Branch previews, no toolbar, no badge
  • Sleeps after 15 idle min, wakes in 4–36 ms
  • Managed Postgres, 256 MB included
Spend cap You set it
$20/mo default

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.

Billing

One unified bill for frontend and backend.

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.

01

One project list

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.

02

One set of meters

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.

03

One cap, one invoice

The $20 spend cap covers everything on the account. Add a managed Postgres and it meters on the same invoice.

Invoice — example month USD
Hobby plan
base
$7.00
web · Next.js
180 GB-hr · 1.5 CPU-hr
$1.05
api · Go
120 GB-hr · 2.5 CPU-hr
$0.80
CDN · US/EU
41 of 150 GB included
$0.00
Usage credit
up to $7/mo
−$1.85
Total $7.00

Computed from the published rates. Two apps, a quiet month: the usage credit absorbs it.

Frontends

Zero-config builds via framework detection. Next.js is what we test hardest — a corpus of a few hundred apps runs against every change.

Next.js
React
Vue
Svelte
Nuxt
Astro
Remix
Angular
Backends

Any language that listens on a port. The detector picks the build for the frameworks below; anything else ships as a Docker image.

Languages
Node.js
Python
Go
Rust
PHP
Ruby
Elixir
Java
Kotlin
.NET
Swift
Deno
Bun
Frameworks
Express
NestJS
Django
FastAPI
Flask
Laravel
Rails
Phoenix
Spring
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.

Table 03 — included, not upsold

Five things that are already on.

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".

01
Deployment protection

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.

02
Postgres in this console

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.

03
The OWASP ruleset, on

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.

04
Frontend and backend

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.

05
Your vercel.json works

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.

Table 02 — what we don't do yet

The list of things we're not.

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.

01
No uptime SLA
One region, dedicated hardware in New York. We run backups and alerting, but we do not sell you a number we cannot underwrite yet. If you need contractual HA today, we are not the right host.
02
One region
Static assets are served from a global CDN, but your app itself runs in New York. No multi-region compute, no region pinning.
03
No edge functions or edge middleware
Your code runs in a microVM at the origin, not at the edge. Next.js middleware runs there too — correct, just not at the edge.
04
One developer, no team seats yet
Team accounts, per-project roles and $7 seats are built but not sold yet. If you need them, email us — that is how they get prioritised.
05
Monthly billing only
No annual plan yet.
$ git push origin main ▊ → my-app.ratna.app
Deploy one app