Blog
By Published 13 min read

Vercel vs Self-Hosting Next.js: Real Costs in 2026

Vercel Pro, Netlify, Cloudflare or your own VPS for a Next.js app? Real 2026 prices, hidden maintenance costs and a simple rule for picking where to deploy.

Legacies is an independent digital product and software studio based in Bucharest, Romania, founded by Horia Stan and Alexandru Tălnaci. We build websites and web apps with Next.js for clients around the world, and we deploy them on Vercel, on platforms like it, and on servers we run ourselves.

The short answer: for most small teams, Vercel Pro at $20 per month is cheaper than self-hosting once you count the hours. Self-hosting on a $6-20 VPS only wins when you have steady traffic, more than a couple of deploying developers, or someone who will actually patch and watch the server every month. The hosting bill is the small number. Maintenance time is the big one.

Quick answer

What each option really costs in 2026

All prices below were checked against official pages at the time of writing (October 2026). They exclude VAT.

OptionBase priceWhat is includedWhere the bill grows
Vercel Hobby$0100 GB transfer, 1M function invocations, 4 CPU-hoursNot allowed for commercial use
Vercel Pro$20/month (1 deploying seat)$20 usage credit, 1 TB transfer and 1M CDN requests on the Flat Rate CDN tier$20 per extra deploying seat, on-demand usage, add-ons
Netlify Pro$20/monthCredit pool (3,000 credits on the base tier, at the time of writing)Extra credit packs, bigger credit tiers
Cloudflare Workers Paid$5/month10M requests, 30M CPU ms, free static asset requests, no egress fees$0.30 per extra million requests, CPU time
Own VPS (for example Hetzner)about €5.50-6/month for the smallest shared plansOne server. Everything else is on youBigger servers, backups, monitoring, your time

Two details people miss.

Vercel bills per deploying seat. A team of four developers who all deploy pays $80/month before any usage. Viewer seats are free, so non-developers can watch previews and comment without adding cost. Vercel also turns on spend notifications at $200 per billing cycle by default. Set your own lower limit on day one.

VPS prices went up in 2026. Hetzner raised cloud prices on April 1 and again on June 15. The cost-optimized CX23 now lists at €5.49/month, the ARM CAX11 at €5.99, and some entry plans are sometimes marked as unavailable (summary of the June change). Cheap is still cheap, but the "a server for €3" math from older blog posts no longer holds.

The cost nobody puts in the comparison table: your hours

A VPS bill of €6 looks great next to $20 until something breaks on a Saturday. When you self-host Next.js, you take over a list of jobs the platform used to do for you:

JobOn VercelOn your own server
TLS certificatesAutomaticYou set up Caddy, Traefik or certbot and watch renewals
OS and Node.js security updatesHandledYou, every month
Next.js framework updatesYouYou
DDoS protection and firewallIncluded, with WAF rulesYou add Cloudflare in front or accept the risk
Preview deployments per branchBuilt inYou build it, or skip it
Image optimizationBuilt inWorks, but uses your CPU and needs sharp
ISR cache across several instancesBuilt inNeeds a shared cache handler (for example Redis)
Logs, uptime alerts, backupsPartly built inYou pick, configure and pay for tools
Rollback to the last good deployOne clickWhatever your scripts allow

Note the third row. On every option, you still have to update Next.js itself. We wrote about why that is now a recurring product task in our guide to staying patched on Next.js. Self-hosting just adds the OS, Node.js, the reverse proxy and Docker to that list.

A realistic estimate for a small app on a well-set-up VPS is 2-4 hours a month: updates, checking backups, looking at disk space and logs, and the occasional incident. If you value a developer hour at even $50, that is $100-200 a month of hidden cost. Next to that number, Vercel Pro looks very different.

When Vercel is the right call

Vercel builds Next.js, and on the official Next.js deployment page it is one of only two verified adapters (the other is Bun). Every feature works on day one, including the ones that are hard to run yourself: ISR, streaming, middleware, image optimization and preview URLs on every pull request.

It is the right choice when:

Most early products we see fit inside the included credit and the 1 TB transfer tier for a long time. If your app was built quickly with AI tools, this also removes a whole class of server mistakes. We cover the rest of that list in the vibe coded app to production checklist.

When self-hosting Next.js makes sense

Next.js runs fully on any Node.js server or Docker container. The docs say plainly that both "support all Next.js features". With output: "standalone" in your config, the build creates a small, production-ready folder that fits well in a Docker image. That part is easy. Running it well over time is the work.

Self-hosting starts to pay off when:

Our own site, legacies.ro, runs in Docker on a server we manage, because we already maintain that machine for other projects. For a client with one app and no one technical in-house, we usually recommend the opposite.

A sane self-hosted setup

If you go this route, do not copy a 2019 tutorial. A setup we would accept in production looks like this:

  1. Build a standalone Docker image in CI (GitHub Actions is fine), not on the server.
  2. Run it behind a reverse proxy that handles TLS on its own, such as Caddy or Traefik. Tools like Coolify or Dokploy wrap this in a dashboard if you prefer clicking to writing config.
  3. Put Cloudflare in front for DNS, caching and basic DDoS protection.
  4. Turn on automatic server snapshots, and back up the database to a different provider.
  5. Add an uptime monitor and error tracking, and decide who gets the alert.
  6. Put monthly OS, Node.js and Next.js updates in a calendar, with a named owner.

Watch your dependencies too. A self-hosted server that runs npm install in production is exposed to every compromised package, which is why we pin versions and audit installs as described in our npm supply chain checklist.

The middle ground: Cloudflare, Netlify and other platforms

You do not have to choose between "Vercel" and "my own Linux box".

Cloudflare Workers is the cheapest managed option at scale. The paid plan starts at $5/month, static assets are free and unlimited, and there are no egress fees. Next.js runs there through OpenNext. The catch: the Next.js docs list Cloudflare's integration as not yet verified against the full test suite. Cloudflare says it is working on a verified adapter, but at the time of writing some features may behave differently. Test your app before you commit. For mostly static marketing sites, also read whether you need edge functions at all. Often a CDN is enough.

Netlify costs the same $20/month for Pro with unlimited members, which helps larger teams. Its newer credit-based plans mean you should check how many credits your deploys and traffic actually use. Like Cloudflare, its Next.js support is its own integration, not yet a verified adapter.

Railway, Render, Fly.io and Google Cloud Run run your Docker image for you. You keep the portability of a container without patching an OS. For many teams with a few apps, this is the sweet spot: usage-based bills, no server to maintain, and an easy move to a VPS later if the numbers say so.

A simple decision rule

Your situationOur pick
Solo founder, MVP, under 10k visitors a monthVercel Pro
Marketing site, mostly static pagesCloudflare or Vercel, both cheap
3+ deploying developers, steady trafficContainer platform or VPS
Strict data location requirements in the EUVPS or container platform in a chosen EU region
No one technical on the teamA managed platform plus someone paid to maintain it
Vercel bill climbing every monthFind out what is costing money first, then decide

That last row matters. A surprise Vercel bill is usually a code problem, not a hosting problem: uncached pages rendered on every request, huge unoptimized images, or a bot hammering an API route. Moving that same app to a VPS just moves the problem to a server that can fall over.

What it costs to have it done for you

If you are a founder with a Next.js app and no time to run it, this is the kind of work we do every week. We build custom web apps with Next.js, set them up on the hosting that fits the budget, and can keep them patched afterwards. On our services page, web apps start at 3,499 lei (about €700) with a fixed price after a short call. Monthly Maintenance is 499 lei per month (about €100) and covers monitoring, monthly technical updates, weekly backups and 2 hours of changes. That is often less than the hidden hours of a self-hosted setup. You can see what we have shipped on our projects page.

Do it yourself or hand it off?

Doing it yourself is fine when you have a developer who enjoys infrastructure, the app is not yet earning money, and a few hours of downtime would not hurt anyone. Start on Vercel or a container platform and move later. A Next.js app in Docker is portable, so you are not locked in.

Hand it off when the app takes payments or stores customer data, when nobody owns updates, or when your hosting bill keeps growing and you do not know why. If you already have a live site, run it through our free website audit first. It shows in under a minute how ready the site is for Google, and it is a quick way to spot slow, uncached pages before you blame the host. If you are still planning the build, our guide on how much it costs to build an app in 2026 puts hosting in the context of the full budget.

Frequently Asked Questions

Is it cheaper to self-host Next.js than to use Vercel?

The server is cheaper: a small VPS costs about €6-20 per month at the time of writing, compared with $20 per deploying developer on Vercel Pro. But self-hosting adds 2-4 hours of maintenance a month for updates, backups, monitoring and incidents. For a solo founder or a two-person team, Vercel is usually cheaper overall. Self-hosting tends to win with several developers, steady traffic and someone who already maintains servers.

Can I use the Vercel free Hobby plan for a business website?

No. Vercel's documentation says the Hobby plan is limited to non-commercial, personal use. A business site, a client project or a product that takes payments needs the Pro plan at $20 per month or another host. Hobby also pauses some features for up to 30 days when you go over its limits, which is not acceptable for a live business.

Do all Next.js features work outside Vercel?

When you run Next.js as a Node.js server or in a Docker container, the official docs say all features are supported, including server rendering, ISR, middleware and image optimization. Some features need extra setup at scale, such as a shared cache when you run several instances. On platforms like Cloudflare and Netlify, Next.js runs through their own integrations, which are not yet verified by the Next.js team, so test your app there before switching.

What is the cheapest way to host a Next.js app in 2026?

For a fully static site, a static export on Cloudflare or another static host can cost nothing. For a full app with server features, Cloudflare Workers starts at $5 per month with no egress fees, and a small VPS starts at about €5.50 per month at the time of writing. The cheapest option on paper is not always the cheapest in practice once you count setup and maintenance time.

Why is my Vercel bill so high?

Usually because pages that could be cached are rendered on every request, images are not optimized, or bots and scrapers are hitting API routes. Check the usage tab to see which resource grows, set a spend limit, and fix caching first. Moving to another host without fixing those causes often just moves the problem.

Should a startup use Vercel or AWS for Next.js?

For an early startup, Vercel is faster to set up and needs almost no infrastructure knowledge. AWS, through Amplify, OpenNext or containers on ECS, makes sense when you already run other services there, need specific compliance setups, or have a team comfortable with AWS. Moving later is realistic if the app is built to run in a standard Docker container.

How hard is it to move a Next.js app off Vercel?

For most apps it takes a few days, not weeks. You build with output: "standalone", package it in a Docker image, set up a reverse proxy with TLS, move environment variables and point DNS to the new host. The harder parts are replacing Vercel-specific services such as Blob storage, KV, cron jobs or analytics, and setting up preview deployments and rollbacks if your team relies on them.

Next.jsHostingPricingDeveloper Tools
Business websites we buildWebsite maintenance and updatesProjects we have builtFree website auditAbout Legacies