Skip to content
Tech Stack30 July 2026 · 7 min readUpdated 30 September 2026

Vercel vs Railway vs Fly.io for SaaS Hosting in 2026

Vercel's included terabyte wins on egress below roughly 1.15 to 1.5 TB a month. Above that, list prices favour Railway and Fly.io. Check which meter your invoice is actually built on.

Vercel vs Railway vs Fly.io for SaaS Hosting in 2026

What you'll learn

  • What are you actually buying from Vercel, Railway and Fly.io?
  • At what traffic does Vercel stop being the cheapest?
  • What does leaving Vercel actually cost you?
Article contents

You are choosing where a SaaS will run, or wondering whether your Vercel invoice means it is time to leave. Before you read a single comparison, open your last invoice and write down three numbers: gigabytes of egress, requests, and your largest line item. Those three figures decide this comparison far more than any feature grid.

Vercel, Railway and Fly.io hold three different ideas of what a running application is. Vercel treats it as a request that ends. Railway keeps your services running and bills the resources they use. Fly.io hands you a virtual machine and asks which region you want it in. Choose wrong and you rarely get an outage. You get an invoice you cannot explain, or a feature you must rebuild by hand.

What are you actually buying from Vercel, Railway and Fly.io?

Three grey cardboard boxes standing in a row on a beige desk, each with a differently shaped blank paper price tag tied on with rough string, the nearest tag sharply lit with a torn and curled corner

You are buying three different meters: Vercel meters requests, data transfer and function resources, Railway meters CPU, memory and disk per second, and Fly.io meters running Machines per second plus outbound transfer. The meter is the platform's opinion about what is scarce.

VercelRailwayFly.io
PlansHobby $0, Pro $20/monthFree, Hobby $5/month, Pro $20/monthUsage-based
Compute unitFluid Active CPU and provisioned memory, plus invocationsPer-second CPU and memoryPer-second Machine time
Compute rateActive CPU from $0.128/hourAbout $20 per vCPU and $10 per GB of memory per monthShared CPU $0.00000075 per vCPU-second
Egress1 TB included on Pro, then $0.15/GB$0.05/GB$0.02/GB in North America and Europe

Rates come from Vercel's pricing page, Railway's pricing page and Fly.io's pricing docs, all read on 30 September 2026. The Pro and Hobby plans on Railway include $20 and $5 of usage credit respectively, and Vercel Pro includes a $20 monthly credit, so the sticker plan price is smaller than it looks and the usage line is bigger.

Limits matter too. Railway's pricing page lists per-service resource ceilings that grow with the plan: 1 vCPU and 0.5 GB on Free, 48 vCPU and 48 GB on Hobby, and 1,000 vCPU and 1 TB on Pro. A typical early SaaS will not touch them, but check the ceiling before you plan a memory-hungry worker.

What does an idle app cost on each platform?

Vercel's docs say that after all requests complete the instance is paused and no CPU or memory charges apply until the next invocation, which is the practical benefit of the serverless model. Fly.io bills a stopped Machine only for its root filesystem, at $0.15 per GB for 30 days. Railway bills the CPU, memory and disk your services use, so an always-on service that holds memory keeps costing you with no traffic. That last sentence is my inference from the per-second model, not a Railway statement.

At what traffic does Vercel stop being the cheapest?

A blank paper receipt strip creasing hard over the edge of a concrete desk and dropping away into shadow, with a dried coffee ring on the desk surface beside it

On egress alone, Vercel Pro stops being cheapest at about 1.15 TB a month against Fly.io and 1.5 TB against Railway, because its included terabyte is beaten once you pay list price on the excess.

Here is the arithmetic on list prices, treating 1 TB as 1,000 GB and ignoring plan fees and the regional rate differences that may apply to your setup.

Monthly egressVercel ProRailwayFly.io (NA/EU)
500 GB$0$25$10
1 TB$0$50$20
1.5 TB$75$75$30
3 TB$300$150$60
5 TB$600$250$100

Solving it: Vercel's cost is $0.15 times everything above 1,000 GB, so it matches Railway's $0.05 per GB at 1,500 GB and Fly.io's $0.02 per GB at roughly 1,154 GB. This is my arithmetic, not a vendor claim. Fly.io's own docs list higher outbound rates elsewhere: $0.04/GB in Asia Pacific, Oceania and South America, and $0.12/GB in Africa and India. If your users sit there, the gap narrows.

Consider a hypothetical B2B SaaS that serves 2 TB of egress a month. On list prices that is $150 of overage on Vercel Pro, $100 on Railway and $40 on Fly.io in North America or Europe. The spread is real but small next to one engineer's week, which is why egress alone rarely justifies a migration until the terabytes climb.

You have probably felt the shape of this even without the math. Traffic doubles and the invoice quadruples. The mechanism is a free allowance ending, not a platform betraying you.

Egress is not the only cliff. Vercel Pro lists 10M CDN requests and then $2 per million, which can hit a chatty single-page app before bandwidth does.

Why does Vercel bill memory while your code waits?

A glass hourglass on a wooden desk with its sand streaming mid-fall, greasy fingerprints smudged across the glass and loose sand grains scattered around the base, a cold cup of coffee blurred behind it

Because fluid compute splits the bill in two. Vercel's fluid compute pricing docs say Active CPU is billed only while your code runs, pausing during I/O, while Provisioned Memory is billed for the whole instance lifetime, including during I/O, until the last in-flight request completes.

Consider a hypothetical endpoint that validates a token, calls Stripe, waits on a database and returns. If 90 milliseconds of the 1.4-second wall clock is CPU, you pay CPU for 90 and memory for all 1,400. Vercel's documented example is a 4 GB function in São Paulo with 4 seconds of active CPU in a 10-second lifetime: about $0.00025 for CPU and $0.00020 for memory. Shrink the CPU work and keep the waiting, and memory becomes the larger term.

The docs also say one instance can handle multiple requests with optimised concurrency, so a busy endpoint spreads that memory across callers. The low-traffic integration endpoint with long third-party waits gets the least benefit. That conclusion is my inference from the billing rules.

What does leaving Vercel actually cost you?

Less than the usual warnings suggest, and in different places. Railway and Fly.io run your container, so what Next.js gives you through Vercel's managed infrastructure becomes something you configure. The Next.js self-hosting guide covers most of it.

  1. Check image optimisation. According to the guide, next/image works self-hosted with zero configuration under next start. Watch memory on glibc-based Linux, where the docs say extra configuration may be needed.
  2. Plan a shared cache for ISR. The Next.js cache is stored on each instance's local disk by default. With several instances or ephemeral compute you need a custom cache handler, and the guide points to a Redis example.
  3. Keep request logic in the container. The guide says Proxy works self-hosted with zero configuration under next start, but it now runs in your region rather than at an edge network, which changes latency and what running code at the edge was buying you.
  4. Add version-skew protection yourself. Set a deploymentId so rolling deployments do not serve clients mismatched assets.
  5. Put a CDN or reverse proxy in front. The guide recommends a reverse proxy, and static assets served from one region will feel slower even at a lower per-gigabyte price.

None of this is exotic. All of it is work, so if you are trading a few hundred dollars of overage for several engineering days plus permanent operations, run that trade honestly before migrating. Preview deployments are one Vercel feature this post does not price, so list which of your own workflows depend on them before you move.

What is Fly.io's autostop trap?

Enabling one autostop setting without its partner produces failures no dashboard explains. Fly's autostop and autostart docs recommend setting auto_stop_machines and auto_start_machines so they are both enabled or both disabled. They also say min_machines_running only keeps Machines running in your primary region and has no effect on other regions, so those regions can scale down to nothing.

Which one should you pick for a SaaS?

Pick by the one constraint you can name today, working down this list and stopping at the first line that describes your product. These are my recommendations, not benchmarks.

  1. Next.js app, under 1 TB of egress, small team. Stay on Vercel. The included terabyte and managed platform are worth more than the plan price at this size, and this fits most of the SaaS MVP stacks I recommend.
  2. Long-running processes, queues, websockets or a database beside your app. Railway. Per-second resource billing suits services that stay alive.
  3. Users on several continents and a latency budget you can measure. Fly.io, provided you accept that Machine lifecycles and scaling rules become yours to operate.
  4. Heavy egress at any scale. Fly.io on price, Railway on price plus convenience. At 3 TB the list-price gap between Vercel and Fly.io is $240.
  5. You cannot answer any of the above yet. Vercel, and revisit at 1 TB. Being wrong for a few months costs little; a premature migration costs weeks.

Your framework may also decide for you. A product like BookBed is built with Flutter and Firebase rather than Next.js, so this comparison applies to whatever web layer you add around it rather than to the core.

Now pull your last invoice and price only your three numbers against the tables above. Which line item would move most if you switched?

Free resource

Free SaaS MVP Scope Template

A Notion document with the full feature checklist, MVP vs. nice-to-have table, pre-build questions, and cost signals — so you walk into any developer call knowing exactly what to ask for.

Get the template →
DL

Dusko Licanin

Full-Stack Developer · Banja Luka, Bosnia

Full-stack developer shipping SaaS MVPs, web apps, and mobile apps using AI-augmented workflows — without agency coordination overhead. Live portfolio: BookBed, Callidus, Pizzeria Bestek.

Frequently Asked Questions

What is the best hosting platform for a SaaS product?

There is no single best platform, only a match between your workload and the meter the platform bills on. Vercel fits a Next.js app under about a terabyte of monthly egress with a small team. Railway fits long-running processes, queues and a database beside your app. Fly.io fits users on several continents or heavy egress. Price the two or three meters your app actually moves, such as egress, requests and function time, because the plan fee is often the smallest number on the invoice. Read each vendor's pricing page again before you commit, since rates change.

Is Fly.io a good fit for a SaaS product?

Fly.io fits a SaaS with users on several continents, a latency budget you can measure and someone willing to own Machine lifecycles and scaling rules. Machines bill per second, a shared-cpu-1x with 256 MB in Ashburn is listed at about $2.59 a month, and outbound transfer is $0.02 per GB in North America and Europe, per Fly.io's pricing docs read on 30 September 2026. The cost is operational: autostop settings, volumes and regional placement are yours to manage.

Can you deploy Next.js on Railway?

Yes, Railway runs your app as a container, so Next.js runs the way the Next.js self-hosting guide describes. Image optimisation works with zero configuration under next start, and Proxy works the same way. The piece to plan is caching: ISR uses a cache stored on each instance's local disk by default, so several instances need a custom cache handler backed by shared storage such as Redis. Railway's pricing page lists memory at about $10 per GB and CPU at about $20 per vCPU per month, with egress at $0.05 per GB.

How much does Vercel cost for a SaaS app?

The Pro plan is $20 a month with a $20 monthly usage credit, and usage is where a SaaS bill lands. Vercel's pricing page lists 1 TB of data transfer included and then $0.15 per GB, 10M CDN requests and then $2 per million, Active CPU from $0.128 per hour and invocations from $0.60 per million. Fluid compute also bills provisioned memory for the whole instance lifetime, including while a function waits on I/O. Model your own egress, request and function-time numbers rather than the plan fee.

When should you move off Vercel?

Move when one identifiable meter costs more than the engineering time to replace it, not because the platform feels expensive overall. On list prices, Vercel Pro stops being the cheapest option for egress at about 1,500 GB a month against Railway and about 1,154 GB against Fly.io, which is my arithmetic rather than a vendor claim. Weigh that saving against the work of a shared ISR cache, a CDN or reverse proxy, version-skew settings and any preview workflows you rely on. A single meter is easier to escape than a whole platform.