Next.js, without the Vercel bill.
Push to GitHub and your Next.js app builds and deploys on a server you rent, with a preview for every pull request and Postgres next to it. SSR, ISR, image optimization and server actions all run under next start.
Same Next.js app, five bills.
A server-rendered Next.js app with a 10 GB Postgres database, at 1 million page views a month (about 1 TB of traffic), costs $145 on Vercel Pro with Supabase for the database, $195 on Netlify, $196 on Render and $69 on Railway. On a rented server with Ployz it's $16, database included. Move the sliders to match your app. The full working is in Vercel pricing, worked out and the best Vercel alternatives.
- Data transfer
- 1.0 TB
- CDN requests (20 per page view)
- 20.0M
- Vercel Pro + Supabase$145/mo
One $20 seat, the Flat Rate CDN tier your requests land in, functions past the $20 credit (iad1), Supabase Pro for Postgres.
- Netlify Pro + Supabase$195/mo
3,000 credits included, then 1,500 for $10. 20 credits per GB, 2 per 10,000 requests, 15 per deploy (30 a month).
- Render (Hobby workspace)$196/mo
$25 web service (2 GB), $19 or $40 Postgres plus $0.30/GB storage, $0.15/GB past 5 GB of bandwidth.
- Railway Hobby$69/mo
About $10 per GB of RAM and $20 per vCPU a month, $0.15/GB volume, $0.05/GB egress. 1 GB app plus a 0.5 or 1 GB database.
- Your own server + Ployz$16/mo
Hetzner CX23 ($6.49) or CX33 ($9.99), about $0.60 IPv4, $9 for Ployz custom domains. Postgres on the same box, no backups included.
Server prices are Hetzner's in Europe (Germany, Finland). In the US, Netcup's Manassas datacenter or a DigitalOcean Droplet is the cheap option; see Hetzner vs DigitalOcean.
What works when Next.js leaves Vercel.
Most of Next.js runs the same under next start on your own server. The Next.js self-hosting guide says image optimization and Proxy work with zero configuration, and ISR works on a single instance with a persistent disk. Here's what changes.
| What you need | Vercel | Ployz on your server |
|---|---|---|
| Server rendering (SSR) | Vercel Functions, billed per CPU-hour, GB-hour and invocation | next start on your server. Same code, no per-request meter |
| ISR | Built in; caches across regions update within 300 ms | Works on one instance out of the box. More than one instance needs a shared cache handler (Redis) and refreshTags() |
| Image optimization | next/image, $0.05 per 1,000 transformations on Pro | Built into next start using sharp. If a standalone build complains, npm i sharp |
| Middleware / Proxy | Runs at the edge | proxy.ts runs on Node.js by default in Next.js 16. Fine for auth checks and redirects |
| Server actions | Work out of the box | Work out of the box. With replicas, set NEXT_SERVER_ACTIONS_ENCRYPTION_KEY |
| Previews per pull request | A preview deployment per branch | A preview environment for every pull request, with its own HTTPS address, on your servers |
| Edge runtime | Edge network in many regions | Not available. runtime = 'edge' is deprecated; remove it. Put Cloudflare in front if you need a CDN |
| Postgres | A Marketplace database billed separately (Neon, Supabase) | One-click Postgres on the same server (a plain service with a volume) |
| Price | $20 per deploying seat, plus CDN tier and usage | Your server, plus $9 a month for custom domains. Free on your own servers |
Ployz swaps in the new version one replica at a time (with a health check, the new one has to pass it first), so old and new versions overlap for a moment. Set deploymentId in next.config to avoid version skew. The rest of the checklist (Cron, Blob, env vars, DNS) is in how to move a Next.js app off Vercel.
What you give up.
Vercel does real work for that bill. These are the jobs that come back to you:
- The global CDN. Your app is served from one city. Users in one region won't notice; a worldwide audience will. Cloudflare's free plan in front covers static assets.
- Backups. Ployz doesn't back up databases yet. Schedule a
pg_dumpto S3-compatible storage; the Postgres hosting guide has the script. - Cron. Vercel Cron Jobs have no Ployz equivalent. Use a crontab that calls your route, GitHub Actions, or an external scheduler.
- Failover and autoscaling. One server has a ceiling. Ployz runs up to 50 replicas across servers you add, but nothing scales on its own, and a database volume lives on one machine.
- OS updates and team roles. The server's OS is yours to patch, and Ployz is built for one operator today.
- GitLab. Ployz deploys from GitHub only, or from any Docker image.
If your bill is under about $40 a month and your visitors are spread across the world, I'd stay on Vercel.
Deploy a Next.js app in three commands.
No Dockerfile needed: Ployz builds Next.js with next build and runs next start, so you don't need output: 'standalone'. If you already have a Dockerfile, Ployz can build with it instead. Remember that NEXT_PUBLIC_ variables are baked in at build time, so set them before the first build.
$ curl -fsSL https://ployz.sh | sh
Installs the ployz CLI on macOS or Linux.
$ ployz login
Signs in to Ployz Cloud in your browser.
$ ployz up --server root@your-server
Installs Ployz on the server, builds this directory and gives it an HTTPS address.
Then connect the GitHub repository so every push deploys, add Postgres from the dashboard, and point your domain at the server. Keep the Vercel project running until the new one has served traffic for a while: rolling back is one DNS change. The quick start shows the same first deploy from the dashboard.
Questions
Can you self-host Next.js without Vercel?
Yes. Next.js runs under next start on any Node.js server, with SSR, ISR, image optimization, Proxy and server actions working. What you replace are Vercel's services around it: the CDN, Cron Jobs, Blob storage and the Marketplace database.
Where can Next.js be deployed?
Anywhere that runs Node.js or Docker: a VPS, a dedicated server, Render, Railway, Netlify, or Cloudflare through the OpenNext adapter. A rented server is the cheapest of these for an app with steady traffic and a database.
Can Next.js be deployed using Docker?
Yes. Set output: 'standalone' and Next.js builds a minimal server.js with only the files it needs. It doesn't copy public or .next/static, so copy those into the image yourself. With Ployz you can skip the Dockerfile entirely.
Is self-hosting Next.js cheaper than Vercel?
For most apps past a few hundred GB, yes. At 1 TB a month, Vercel Pro is $120 for the app alone; a Hetzner CX23 runs the app and its Postgres for about $16 including Ployz custom domains. Under about 200 GB, Vercel Pro on on-demand CDN pricing is about $21 and hard to beat.
What size server does a Next.js app need?
I think a 2 vCPU, 4 GB server runs a typical Next.js app plus Postgres comfortably. Start with one instance; that also keeps ISR simple. Move up when your memory use says so.
What does Ployz cost?
Ployz is free on your own servers, with unlimited servers, projects and preview environments. Custom domains on Ployz Cloud are $9 a month. You pay your server provider for the server.
What do I need?
A Linux server with systemd, amd64 or arm64, with a public IP address and root or sudo access (Ubuntu LTS is best: there, volumes get size limits). Builds run on it too, so give it 2 GB of memory or more. And a GitHub repository. Ployz doesn't rent or create servers for you.
What happens if Ployz Cloud goes down?
Your servers keep serving your app. You can't deploy until Ployz Cloud is back. The CLI and the software on your servers are open source (Apache-2.0).
Your servers. The whole platform. Free on your own servers.
Deploy your appFacts checked 2026-10-02.