The best Vercel alternatives in 2026
Almost everyone searching for a Vercel alternative is doing it for one of three reasons: the bill grew faster than the traffic, a workload doesn't fit the function model, or someone in a compliance review asked where the code runs. Those lead to different answers, and the generic 'top 10 alternatives' list serves none of them well.
I build PandaStack, which is one of the options below. I'll flag where it fits and — more usefully — where it doesn't.
What Vercel is doing that you'll be doing
Vercel's product is mostly invisible, which is why migrations underestimate it. Before you compare anything, count how many of these you depend on.
- A global CDN with automatic cache invalidation on deploy. This is the big one and it's genuinely good.
- Image optimisation — resizing, format negotiation, and caching, as a service.
- Preview deployments per pull request with a unique URL, plus comments on them.
- Instant rollback to any previous deployment, because every deployment is kept and addressable.
- Edge middleware running before the cache.
- ISR with a cache shared across all instances and regions, and on-demand revalidation that actually reaches all of them.
- Framework-version tracking: Next.js features work the day they ship.
Pick by why you're leaving
Leaving because of cost
First, find out what's expensive. Vercel bills bandwidth, function invocations and duration, and image optimisation separately, and one of those is usually dominating. It's frequently bandwidth from a heavy asset or bot traffic that never touches a function.
If it's bandwidth, a CDN in front of a modest origin fixes it for a small fraction of the price, and that's true whether the origin is a container PaaS, a microVM, or a VPS. If it's function invocations, the answer is a long-lived server: one process serving many requests has a completely different cost curve than per-invocation billing, and the crossover point arrives earlier than most people expect. If it's image optimisation, move it to a CDN that includes it.
Leaving because the workload doesn't fit
Functions have a maximum duration, no persistent process, no filesystem you can rely on, and no way to hold a socket. If you need background jobs, WebSockets, a long-running build, a queue consumer, or an in-memory cache shared across requests, you don't need a cheaper Vercel — you need a server.
Container PaaS platforms — Render, Railway, Fly.io, Koyeb, Northflank — are the direct answer here. Your Next.js app builds with `output: 'standalone'` and runs as `node server.js`, and everything that was awkward becomes ordinary.
Leaving because of isolation or data-residency requirements
This is where microVM platforms come in, and it's my category, so weigh accordingly. If your app runs code it didn't write — an agent executing generated code, a customer-supplied transform, a notebook backend — a shared-kernel function runtime is a hard thing to defend in a security review. A microVM gives each workload its own kernel, and because a machine can be created through snapshot-restore in about 179ms at p50, per-request or per-tenant isolation is affordable rather than aspirational.
If you're a marketing site with a contact form, this is not your category and I'd point you at the CDN-plus-static options.
The shortlist, honestly
- Netlify — the closest like-for-like. Same shape, similar DX, different pricing. A migration measured in hours, and a similar structural cost model, so check it solves your actual problem.
- Cloudflare — cheapest bandwidth in the industry and an excellent CDN. Server code runs in V8 isolates rather than Node, so audit native dependencies and database drivers before committing.
- Container PaaS (Render, Railway, Fly.io, Northflank, Koyeb) — a real server, predictable pricing, background work included. You add a CDN and an ISR cache handler yourself.
- MicroVM platforms (Fly Machines, PandaStack) — a real server with a kernel boundary. Right when isolation is a requirement or the app provisions environments at runtime.
- Self-managed on a cloud VM — cheapest at scale, most attention required. Reasonable if you already have a platform team.
- Staying on Vercel with the expensive thing fixed — genuinely the best answer more often than a vendor will tell you. A CDN in front of your assets, or one heavy route moved off, frequently removes the reason to migrate.
How to migrate without a bad week
- Build with `output: 'standalone'` locally and run `node .next/standalone/server.js`. If that works, your app is portable; if it doesn't, fix that before choosing a platform.
- Inventory your environment variables and mark which are needed at build time. NEXT_PUBLIC_* values are inlined during the build, and a platform that injects them only at runtime will hand you undefined values in the browser bundle.
- Set up the CDN before you cut over, not after. It's the piece with the most surprising defaults.
- Configure an ISR cache handler backed by shared storage if you use revalidation, then test by revalidating and reloading a dozen times to check for flapping.
- Run both platforms in parallel behind a traffic split for a full week, including a weekend, before moving DNS properly.
# Prove portability locally before choosing anything
# next.config.js: module.exports = { output: 'standalone' }
npm run build
node .next/standalone/server.js
# Then the deploy is just "run that command somewhere"
pandastack apps create --name web \
--git-url https://github.com/acme/web \
--start-cmd 'node .next/standalone/server.js'The short version
Diagnose before you migrate. If bandwidth is the bill, a CDN fixes it wherever you host. If invocations are the bill, a long-lived server changes the curve. If the workload needs a process, go to a container PaaS. If the isolation boundary is a requirement, look at microVMs. And if Vercel works and the bill is fine, the correct number of weeks to spend migrating is zero.
Frequently asked questions
What do I lose by moving off Vercel?
More than the hosting. A global CDN with cache invalidation tied to deploys, image optimisation as a managed service, preview deployments per pull request, instant rollback to any prior deployment because every one stays addressable, edge middleware that runs before the cache, and an incremental static regeneration cache shared across every instance and region. Most of these are rebuildable — a CDN in front of your origin covers the first, a cache handler backed by Redis covers ISR — but they are work, and teams routinely scope a migration without counting them. The one with no cheap substitute is same-day support for brand-new Next.js features.
What is the cheapest Vercel alternative?
It depends entirely on which line of your bill is large. If bandwidth dominates, Cloudflare has the cheapest egress in the industry and putting it in front of almost any origin solves the problem without changing platforms. If function invocations and duration dominate, a single long-lived server on a container or microVM platform has a fundamentally different cost curve, and the crossover arrives sooner than most teams assume. If image optimisation dominates, move it to a CDN that includes it. Look at the itemised bill before shortlisting anything — the common case is one line item accounting for most of the total.
Can I run Next.js properly outside Vercel?
Yes, with `output: 'standalone'`, which emits a self-contained Node server with a pruned node_modules. Middleware, streaming, server actions, and API routes all work because they run as ordinary Node rather than through an adapter. Two things need replacing: image optimisation, which is a CPU and cache workload someone must run, and ISR across multiple instances, which requires a custom cache handler backed by shared storage rather than local disk. Test both explicitly — the ISR failure mode is content flapping between versions depending on which instance serves the request, which is easy to miss in a quick smoke test.
Is Netlify actually different from Vercel?
Structurally, not very. Same deployment model, same preview-per-branch idea, same serverless function shape, comparable DX. That makes it the easiest migration on this list and also the one least likely to fix a problem, because if your issue is metered bandwidth or the absence of a long-lived process, you will meet the same constraints with different names. It is a good move when you specifically prefer Netlify's pricing at your traffic profile or want off Vercel for commercial reasons. It is not a good move when the underlying problem is architectural.
When is a microVM platform the right Vercel replacement?
When the isolation boundary is a requirement you have to defend rather than a preference. Concretely: your app executes code it did not write — generated code from an LLM agent, customer-supplied transforms, a notebook backend — or a security review needs an answer better than shared-kernel process isolation, or you need kernel-level capabilities like nested containers that a function runtime will never provide. It is also the right shape when the app itself provisions environments at runtime, since creating a microVM through snapshot-restore takes roughly 179ms at p50, cheap enough to do per request. For a marketing site or a standard CRUD dashboard, it is more machinery than the problem requires.
Keep reading
- App hosting on PandaStack — long-lived apps on hardware-isolated microVMs
- The best Next.js hosting platforms in 2026
- How to migrate from Vercel to microVM hosting
- PandaStack vs Vercel Sandbox
- Build-time vs runtime environment variables
49ms p50 cold start. Fork, snapshot, and scale to zero.