The best Next.js hosting provider for most teams in 2026 is Vercel to start and Railway or a self-hosted VPS once the bill matters. Every Next.js 16 feature runs on a plain Node.js server, so the choice is about cost, operations and how much configuration you want to own, not about which features work. This guide compares 10 providers on pricing verified in September 2026, the limits that cause problems in production, and the deploy steps that differ per platform.
Quick recommendations:
- Beginners & MVPs: Vercel's free Hobby tier (zero configuration)
- Growing SaaS: Railway ($5-20/month base, unlimited seats on Pro)
- Cost-conscious: Docker on a Hetzner VPS (about €5.50/month), optionally managed with Coolify
- Global edge: Cloudflare Workers via OpenNext (free tier, no egress fees)
- Enterprise AWS mandate: SST v4 with OpenNext
Next.js hosting is the infrastructure that runs your application in production: it handles HTTP requests, serves static assets, executes server-side code (Server Components, Server Actions, Route Handlers) and caches rendered output, using serverless functions, edge workers or long-running containers depending on the platform.
Updated September 2026 for Next.js 16, the stable Deployment Adapter API, Cloudflare's Node.js compatibility default, and new Netlify, Render and Railway pricing.
If you're building a SaaS on Next.js, the Next.js Supabase starter ships deployment guides for Vercel, Cloudflare, Docker and VPS. Want to price your own workload? Use the hosting pricing calculator.
What Next.js 16 Needs From a Host
Next.js 16 needs a Node.js server with streaming support, plus the sharp package for Image Optimization. The Next.js deployment docs state that a single next start process handles Server Components, ISR, Partial Prerendering, Cache Components, Server Actions, Proxy and after() correctly. Everything a platform adds on top (CDN caching, edge compute, a shared cache) improves performance, not correctness.
The Next.js team calls this the difference between functional fidelity (every feature works) and performance fidelity (features hit their best latency, like a PPR static shell served from the CDN). Any provider below that runs Node.js achieves functional fidelity. They differ on performance fidelity, price and operational overhead.
Two 2026 changes matter here:
- The Deployment Adapter API is stable as of Next.js 16.2 (March 2026). Platforms plug into the build through a public API instead of reverse-engineering the
.nextoutput. The verified adapters today are Vercel and Bun. Cloudflare and Netlify are building theirs and, until then, ship their own integrations (OpenNext for Cloudflare,@netlify/plugin-nextjsfor Netlify). - Multi-instance self-hosting needs three settings. Set the same
NEXT_SERVER_ACTIONS_ENCRYPTION_KEYon every instance so Server Actions decrypt on any instance, setdeploymentIdfor version skew protection during rolling deploys, and configurecacheHandler/cacheHandlerswith shared storage (Redis, for example) if you use ISR or'use cache'. Without a shared cache, each instance revalidates independently.
How to Choose a Next.js Hosting Provider
Pick on four factors, in this order for most SaaS teams:
- Cost at your real scale: seats, bandwidth and compute, not the headline price
- Operational overhead: who patches the OS, restarts crashed processes and gets paged
- Developer experience: git push deploys, preview URLs per PR, logs you can read
- Security: SSL, DDoS protection and platform updates (see our Next.js security guide for application-level concerns)
The Hosting Options
1. Vercel - The Default Choice
What is Vercel? Vercel is the company that created and maintains Next.js. Its hosting platform deploys Next.js with zero configuration: automatic HTTPS, a global CDN, Fluid Compute functions and a preview deployment for every pull request. Vercel's adapter is one of two verified adapters for the Next.js Adapter API, and new framework features work there on release day.
Vercel supports every Next.js feature out of the box. If you're deploying Next.js for the first time, start here.
Vercel Pricing Breakdown
| Plan | Cost | Data transfer | Functions | Image transformations |
|---|---|---|---|---|
| Hobby | Free | 100GB/month | 1M invocations, 4h Active CPU | 5,000/month |
| Pro | $20/month + usage | 1TB/month | Usage-based ($20 credit included) | Usage-based |
| Enterprise | Custom | Custom | Custom | Custom |
Pricing verified September 2026 against vercel.com/pricing.
The Hobby tier uses hard caps instead of overage billing: exceed a limit and the project stops serving until the next month, or until you upgrade. Hobby is also restricted to non-commercial use, so a SaaS that charges customers belongs on Pro.
Pro costs $20/month, which includes one deploying seat and a $20 usage credit. Each additional deploying seat costs $20/month; viewer seats are free. Compute is billed through Fluid Compute: Active CPU from $0.128/CPU-hour (I/O wait is free) plus provisioned memory from $0.0106/GB-hour.
This per-seat model is what people call the "Vercel Tax." A team of 5 developers starts at $100/month before any usage.
For line-item costs across four real workloads and a side-by-side comparison with five alternatives, see what Vercel actually costs in 2026.
Pros:
- Zero-configuration deployment for Next.js
- Preview URLs for every PR
- Verified Next.js adapter, so new features work on release day
- Long function durations with Fluid Compute: 300s on Hobby, up to 800s on Pro
- Built-in Skew Protection on Pro and Enterprise
Cons:
- Per-seat pricing adds up for teams
- Bandwidth and CDN request overage dominate the bill at high traffic
- Lock-in for Vercel-specific storage and config products
- Hobby is non-commercial only
- No SSH access or custom runtime control
Best for: Solo developers, small teams shipping fast, and projects that want new Next.js features on day one.
2. Railway - Best Balance of DX and Cost
Railway is our recommendation for most production SaaS apps. It matches Vercel's developer experience with a container model: your Next.js app runs as a long-lived next start process, next to your Postgres, Redis and background workers.
Railway Pricing
| Plan | Cost | Includes |
|---|---|---|
| Free | $0 | $1/month credit, 0.5GB RAM |
| Hobby | $5/month | $5 usage credit, up to 3 seats |
| Pro | $20/month | $20 usage credit, unlimited seats |
Pricing verified September 2026 against railway.com/pricing.
Usage beyond the credit is billed at roughly $20/vCPU-month, $10/GB of RAM per month and $0.05/GB of egress. A typical Next.js app with moderate traffic lands at $8-15/month on Hobby, by our estimate. Because Pro includes unlimited seats, a 5-person team pays $20/month plus usage, versus $100/month in seats alone on Vercel.
# Deploy Next.js to Railway from the project rootrailway initrailway upWhat makes Railway fit SaaS applications is running the database, cache and job workers on the same platform, over a private network. Railway runs on its own hardware (Railway Metal) in four regions: US West, US East, EU West (Amsterdam) and Southeast Asia (Singapore). Since June 2026, Railway CDN serves all Railway traffic, which removes the old "no CDN" objection for static assets.
Pros:
- Unlimited seats on Pro (no per-seat tax)
- Databases, Redis and workers alongside your app
- Long-running process: no function timeouts, WebSockets work
- Preview environments per PR
- Built-in CDN since June 2026
Cons:
- Compute runs in four regions, not at the edge
- Smaller ecosystem than Vercel or AWS
- You configure multi-instance caching yourself if you scale horizontally
Best for: Growing SaaS products, teams that want predictable costs, and apps that need a database next to the frontend.
3. Cloudflare Workers - Edge Performance, Lowest Bandwidth Cost
Cloudflare Workers runs your app in 300+ cities with no egress fees. The free plan includes 100,000 requests/day. The paid plan costs $5/month with 10M requests and 30M CPU-milliseconds included, then $0.30 per million requests.
Next.js runs on Workers through OpenNext for Cloudflare (@opennextjs/cloudflare, version 1.20 as of September 2026). It supports Next.js 16 on the Node.js runtime, not the Edge runtime. Node.js compatibility became the default for Workers with a compatibility date of 2026-08-04 or later, which removes most of the "this npm package doesn't work" friction from earlier years.
npm create cloudflare@latest -- my-next-app --framework=next --platform=workersCompatibility is good, not complete. We ship a Cloudflare target for the MakerKit Next.js Supabase kit, and our Cloudflare deployment guide still has three manual steps:
- Rename
proxy.tstomiddleware.ts, because OpenNext didn't support the Next.js 16proxy.tsconvention when we wrote the guide (opennextjs-cloudflare#1082) - Swap Nodemailer for an HTTP mailer like Resend, since Nodemailer depends on raw TCP sockets
- Pass
httpClient: Stripe.createFetchHttpClient()to the Stripe SDK so it usesfetchinstead of Node's HTTP module
None of these are hard. Budget an afternoon, not a week.
Pros:
- No egress fees on any plan
- Low latency globally (300+ locations)
- $5/month paid plan covers most early-stage SaaS traffic
- Integrated R2, D1, KV, Queues and Durable Objects
- DDoS protection included
Cons:
- Requires the OpenNext adapter and a separate build step
- A few Node.js libraries still need replacements (SMTP, native modules)
- Verified Adapter-API support is still in progress
- Debugging is harder than with a plain Node.js process
Best for: High-traffic apps where bandwidth dominates the bill, global audiences, and teams comfortable swapping a few dependencies.
→ Estimate your Cloudflare Workers bill
4. AWS with OpenNext - Enterprise Scale
AWS makes sense when your organization already runs there or compliance requires it. OpenNext for AWS (@opennextjs/aws, v4 since May 2026) deploys Next.js to Lambda with streaming, CloudFront as the CDN and S3 for static assets.
AWS isn't plug-and-play. You need working knowledge of Lambda, CloudFront and IAM, so most teams use SST (v4 as of 2026) to wire it up:
// sst.config.tsexport default $config({ app(input) { return { name: "my-saas", home: "aws", region: "us-east-1" }; }, async run() { new sst.aws.Nextjs("Web"); },});Run npx sst deploy --stage production and SST prints the CloudFront URL when the deploy finishes. Flightcontrol is the managed alternative, though its pricing page now names Ravion as its successor, so check where that product is heading before committing.
Pricing is pay-per-use (Lambda invocations and duration, CloudFront requests, data transfer). It can be cheaper than Vercel at scale, but AWS billing is hard to predict.
Pros:
- Scales as far as you need
- Full AWS ecosystem integration
- Compliance certifications (SOC 2, HIPAA and others)
- Fine-grained infrastructure control
Cons:
- Steep learning curve
- Complex billing
- Requires DevOps expertise
- Slower iteration than managed platforms
Best for: Enterprise teams with AWS mandates, compliance requirements or existing AWS infrastructure.
5. Fly.io - Global VMs
Fly.io runs your app as Firecracker VMs in multiple regions. Unlike serverless platforms, you get a persistent process with fast boot and optional scale-to-zero, which suits WebSockets, real-time features and anything that suffers from cold starts.
There's no free tier: new accounts get a trial of 2 machine-hours or 7 days. A shared-cpu-1x VM with 256MB costs about $1.94/month always-on in the cheapest region, plus $2/month if you need a dedicated IPv4. Fly's docs list 17 regions.
You're managing VMs, not just pushing code. If your app works fine on serverless, Fly.io adds operations work you don't need.
Pros:
- Multi-region VMs across 17 regions
- Persistent compute (no cold starts when kept warm)
- WebSockets and real-time support
- Per-second billing with scale-to-zero
Cons:
- No free tier, trial only
- More operational overhead than Railway or Vercel
- Dedicated IPv4 costs extra ($2/month)
- Smaller ecosystem than major clouds
Best for: Real-time apps, WebSocket-heavy apps and teams that want multi-region VMs without serverless limits.
6. Netlify - Vercel Alternative With Flat Team Pricing
Netlify moved to credit-based pricing in September 2025: Free (300 credits/month), Personal ($9/month, 1,000 credits) and Pro ($20/month, 3,000 credits, unlimited team members). Bandwidth costs 20 credits/GB and production deploys 15 credits each.
Next.js runs on Netlify through @netlify/plugin-nextjs, which is built on OpenNext, supports Next.js 13.5 and later, and is tested against every Next.js release. Netlify's verified Adapter-API adapter is still in development.
The flat Pro price is the headline change: a 5-person team pays $20/month on Netlify Pro versus $100/month in seats on Vercel Pro. The trade-off is that bandwidth-heavy apps use up credits quickly at 20 credits/GB.
Pros:
- Unlimited team members on Pro
- Mature platform with a long track record
- Next.js runtime tested against every release
- Strong forms, identity and plugin ecosystem
Cons:
- Credit model makes bandwidth costs harder to predict
- Free plan has no overage, so the site stops at 300 credits
- New Next.js features can lag Vercel
Best for: Teams already on Netlify, teams with many members and moderate traffic, and projects that don't need Next.js features on release day.
7. Self-Hosted VPS - Maximum Value
Self-hosting on a VPS is the cheapest way to run Next.js in production if you're comfortable with Linux. Hetzner's CX23 (2 vCPU, 4GB RAM) costs €5.49/month in Germany and Finland after the June 2026 price adjustment. DigitalOcean, OVH and Vultr are alternatives, especially for US regions.
The simplest production setup is Docker plus a reverse proxy: build a standalone image, run it with Docker Compose, and put Nginx or Caddy in front for TLS. That's what our VPS deployment guide uses (Docker, Nginx and Let's Encrypt).
If you want a Vercel-like dashboard on your own server, Coolify (open source, v4 stable) adds git push deploys, preview URLs per PR, automatic SSL and one-click databases:
# Install Coolify on a fresh Ubuntu VPScurl -fsSL https://cdn.coollabs.io/coolify/install.sh | bashPut Cloudflare's free plan in front for CDN and DDoS protection and your traffic spikes cost nothing extra.
Pros:
- Lowest cost per unit of compute
- No per-request, per-seat or egress charges on most providers
- Full control: native cron, WebSockets, any Node.js version
- Run app, database and cache on one box
- No vendor lock-in
Cons:
- You own security updates and patches
- No automatic scaling
- Single point of failure without a redundancy setup
- Debugging production is on you
Best for: Cost-conscious teams, developers comfortable with Linux, and projects where infrastructure control matters more than convenience.
8. Render - Simple Container Deployments
Render is the Heroku-style option: deploy Next.js from a Dockerfile or let Render detect the framework. Web services start at $7/month (Starter, 0.5 CPU, 512MB) and $25/month for Standard (1 CPU, 2GB). In April 2026 Render replaced per-member workspace pricing with flat plans: Hobby is free and Pro is $25/month with unlimited members.
The free web service tier spins down after 15 minutes without traffic, so the first request after idle waits on a cold start. Use it for demos, not production.
# render.yamlservices: - type: web name: my-nextjs-app runtime: node buildCommand: pnpm install && pnpm build startCommand: pnpm startPros:
- Predictable instance pricing
- Flat workspace pricing since April 2026
- Multi-language services on one platform
- Automatic SSL, CDN and preview environments
Cons:
- Free web services spin down after 15 minutes
- Bandwidth overage gets expensive at high traffic
- Fewer Next.js-specific optimizations than Vercel
Best for: Teams that want Heroku-like simplicity, multi-language projects and straightforward container deploys.
9. AWS Amplify Hosting - Simplified AWS (Not Yet on Next.js 16)
AWS Amplify Hosting is AWS's managed answer to Vercel and Netlify. Connect a Git repository in the Amplify console and it handles builds, preview environments and a CloudFront-backed CDN.
The blocker for new projects: Amplify officially supports Next.js 12 through 15, not Next.js 16. Streaming, on-demand ISR and after() are listed as unsupported. If you're starting on Next.js 16 today, use SST with OpenNext instead.
New AWS accounts created after July 15, 2025 get up to $200 in credits for 12 months rather than the old Amplify free-tier allowances. The Gen 1 CLI workflow (amplify publish) is in maintenance mode with end of life on May 1, 2027; Gen 2 deploys from Git.
Pros:
- Simpler than raw AWS infrastructure
- Integrates with Cognito, AppSync and DynamoDB
- Git-based CI/CD
- AWS compliance and security
Cons:
- No official Next.js 16 support as of September 2026
- Streaming and on-demand ISR unsupported
- AWS billing complexity remains
Best for: Existing Next.js 15 apps already committed to AWS services.
10. DigitalOcean App Platform - Middle Ground
DigitalOcean App Platform is a managed PaaS between a raw VPS and Vercel. It detects Next.js projects, builds them and runs them as containers, with managed Postgres available alongside.
The cheapest Node.js service costs $5/month (shared 1 vCPU, 512MiB, 50GiB transfer). The free tier covers static sites only.
Pros:
- Simpler than a self-managed VPS
- Predictable pricing
- Managed databases in the same account
- Good documentation
Cons:
- 512MiB on the $5 tier is tight for a Next.js SSR app
- Fewer edge locations than Cloudflare
- Slower builds than Vercel
- Free tier is static-only
Best for: Teams already on DigitalOcean that want managed hosting without per-seat pricing.
Quick Comparison
| Provider | Best For | Starting Cost (Sept 2026) | Team Pricing | DX | Scaling | Edge Compute |
|---|---|---|---|---|---|---|
| Vercel | Beginners, fast shipping | Free / $20/mo | $20 per dev seat | Excellent | Auto | Yes |
| Railway | Growing SaaS | $5/mo | Unlimited seats on Pro | Excellent | Auto | No (CDN only) |
| Cloudflare | Edge, high bandwidth | Free / $5/mo | No seat charge | Good | Auto | Yes |
| AWS + OpenNext | Enterprise | Pay-per-use | IAM users | Complex | Auto | Yes |
| Fly.io | WebSockets, multi-region | ~$2/mo | No seat charge | Good | Manual | Multi-region VMs |
| Netlify | Vercel alternative | Free / $20/mo | Unlimited members on Pro | Excellent | Auto | Yes |
| VPS (+ Coolify) | Cost optimization | ~€5.50/mo | No seat charge | Good | Manual | No |
| Render | Simple containers | Free / $7/mo | Flat $25/mo Pro | Good | Auto | No |
| AWS Amplify | Next.js 15 on AWS | Credits / pay-per-use | IAM users | Good | Auto | Yes |
| DigitalOcean | Middle ground | $5/mo | No seat charge | Good | Auto | No |
Real-World Recommendations
For Side Projects and MVPs
Start on Vercel's free tier. Zero friction, and a standard Next.js app moves to any other provider later. Don't optimize hosting costs before you have users. If the project charges money, you need Vercel Pro, not Hobby.
For Growing SaaS Products
Railway gives you the best mix of developer experience and predictable pricing. Unlimited seats on Pro and a database next to your app keep both the bill and the architecture simple.
For Cost-Conscious Production Apps
Self-host on a Hetzner VPS with Docker, behind Cloudflare's free CDN. In our Vercel cost breakdown, the same 250k-visitor workload costs about $30/month on a VPS versus about $305/month on Vercel.
For Global Performance
Cloudflare Workers via OpenNext, if you can swap the few dependencies that need Node sockets. Otherwise, Fly.io for multi-region VMs.
For Enterprise With an AWS Mandate
Use SST v4 with OpenNext. Skip Amplify for new Next.js 16 projects until AWS lists official support.
Common Mistakes to Avoid
- Picking the cheapest option before you have traffic: developer time spent on infrastructure costs more than hosting at MVP scale.
- Underestimating self-hosting overhead: a €5.49 VPS is cheap until you're debugging a full disk at 2am. Budget for operations time, not just the invoice.
- Running multiple instances without a shared cache: with two or more Next.js instances, ISR and
'use cache'entries revalidate per instance. ConfigurecacheHandler/cacheHandlerswith Redis or similar, as the Next.js self-hosting guide describes. - Forgetting
NEXT_PUBLIC_variables are build-time: changing them requires a rebuild; server-only variables don't. Plan your configuration per environment. - Ignoring version skew: users with open tabs run old code after you deploy, and their Server Actions fail. Vercel Pro handles this with Skew Protection. Elsewhere, set
deploymentIdinnext.configand follow our version skew protection guide. - Starting a Next.js 16 project on a host that only supports Next.js 15: check the provider's supported version list before you commit. AWS Amplify is the main example in 2026.
Deploying Next.js with Docker
Container platforms (Railway, Render, Fly.io, DigitalOcean) and any VPS run Next.js from a Docker image. This multi-stage Dockerfile uses Node.js 24 LTS; Node.js 20 reached end of life in April 2026.
FROM node:24-alpine AS base# Install dependencies only when neededFROM base AS depsRUN apk add --no-cache libc6-compatWORKDIR /appCOPY package.json pnpm-lock.yaml* ./RUN corepack enable pnpm && pnpm install --frozen-lockfile# Build the applicationFROM base AS builderWORKDIR /appCOPY --from=deps /app/node_modules ./node_modulesCOPY . .RUN corepack enable pnpm && pnpm run build# Production imageFROM base AS runnerWORKDIR /appENV NODE_ENV=productionRUN addgroup --system --gid 1001 nodejsRUN adduser --system --uid 1001 nextjsCOPY --from=builder /app/public ./publicCOPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/staticUSER nextjsEXPOSE 3000ENV PORT=3000ENV HOSTNAME="0.0.0.0"CMD ["node", "server.js"]The Dockerfile requires standalone output in your Next.js config:
// next.config.tsimport type { NextConfig } from 'next';const nextConfig: NextConfig = { output: 'standalone',};export default nextConfig;Standalone output traces only the files your server needs, which typically takes the image from about 1GB to 100-200MB. Verify it locally with docker build -t my-saas . && docker run -p 3000:3000 my-saas, then open http://localhost:3000. In a monorepo, the standalone output nests your app under its workspace path, so server.js lives at apps/web/server.js inside the image; MakerKit's generator handles that for you.
Quick Recommendation
Vercel is best for:
- Solo developers and small teams shipping their first version
- Projects that want new Next.js features on release day
Move off Vercel when:
- Your team has 3+ developers and seat costs dominate (Railway or Netlify Pro have unlimited seats)
- Bandwidth dominates the bill (Cloudflare Workers has no egress fees)
- You want the lowest cost per unit of compute (a Hetzner VPS)
Our pick: Start on Vercel, and move to Railway or a Docker VPS once your bill passes about $100/month. Next.js 16 runs every feature on a plain Node.js server, so the move is a deploy change, not a rewrite.
Frequently Asked Questions
What is the best hosting for Next.js in 2026?
Can I use Next.js with Cloudflare Workers?
How do I self-host Next.js cheaply?
Is Vercel too expensive for production?
What is the Next.js Deployment Adapter API?
What is OpenNext?
Does AWS Amplify support Next.js 16?
Can I migrate from Vercel to another host?
Deploying MakerKit to Production
MakerKit's Next.js Supabase kit ships deployment guides and generators for four targets:
- Vercel: set the Root Directory to
apps/weband add your environment variables; nothing else to configure - Docker:
pnpm run turbo gen dockergenerates the Dockerfile and sets standalone output; the image runs on Railway, Render, Fly.io or any VPS - VPS: Docker, Nginx and Let's Encrypt on Hetzner, DigitalOcean or any Ubuntu server
- Cloudflare:
pnpm run turbo gen cloudflarescaffoldswrangler.jsoncand the OpenNext config
For a walkthrough of running one codebase on all of them, see multi-platform deployment. Our default advice doesn't change: start on Vercel for speed, then move to Railway or a VPS when hosting becomes a line item you care about.
Disclosure: MakerKit sells Next.js SaaS kits that deploy to all the platforms above. We don't get paid by any hosting provider on this list.