A metal railway points lever on the ground near railroad equipment

Guide

Railway vs Vercel + Supabase vs AWS

Three levels of abstraction, not three versions of one thing. What each costs at published rates for the same small app, and the trade-off you take on.

Published July 11, 2026

These are three levels of abstraction, not three versions of the same product. Railway runs your containers and bills what they consume. Vercel plus Supabase splits the app into a managed frontend and a managed backend with flat plan fees. AWS sells you the primitives and the responsibility. Pick by how much operational work you want to own.

What are you actually choosing between?

Railway is a container platform. You give it a repository or an image, it builds and runs the thing, and it bills per second for the CPU, memory, and disk your services actually use — $0.0278 per vCPU-hour, $0.0139 per GB-hour of memory, $0.05 per GB of egress, on top of a plan fee that starts at $5 a month for Hobby and $20 for Pro, each including that much usage credit. Databases are services in the same project, not a separate vendor relationship.

Vercel plus Supabase is a split stack: a managed frontend platform that is very good at Next.js, paired with a managed Postgres that arrives with authentication, row-level security, storage, and realtime already wired to it. You are buying two products with mostly flat fees — $20 a month for a Vercel Pro seat, $25 for Supabase Pro — and usage rates that only start mattering later.

AWS is the primitives. Fargate at $0.04048 per vCPU-hour and $0.004446 per GB-hour, RDS for Postgres, an Application Load Balancer at $0.0225 per hour plus capacity units, and 100 GB of free egress a month before $0.09 per GB. Nothing is assembled for you. Everything is available, and every piece is yours to configure, monitor, secure, and pay for whether or not it is doing anything.

Railway, Vercel plus Supabase, and AWS compared across operational and cost dimensions
RailwayVercel + SupabaseAWS
What you deployContainersA framework app plus a managed backendAnything, assembled by you
Billing shapePer-second usage over a plan feeMostly flat plan feesPer-resource, per-hour, always on
Egress$0.05/GB$0.15–0.35/GB after 1 TB (Vercel); $0.09/GB after 250 GB (Supabase)100 GB/month free, then $0.09/GB
DatabaseA service in your projectSupabase Postgres, with auth and RLS includedRDS or Aurora, configured by you
Ops burdenLowLowestHigh — it is the product
Scaling ceilingHigh; 1,000 vCPU and 42 replicas on ProHigh for web workloads, opinionatedEffectively none
Lock-inThin — containers moveData moves cleanly; auth and RLS less soDeep by surface area, standard by component
Best whenYou want one platform and no ops hireThe app is Next.js and the backend is CRUD plus authCompliance, scale, or an existing AWS estate decides it

What does the same app cost on each?

Unit rates are easy to quote and useless on their own, so here is one modest application priced three ways at published August 2026 rates: a web service, a background worker, a Postgres database with 10–20 GB of data, and 50 GB of egress a month. Every assumption is in the ledger, because the assumptions are what actually move these numbers.

Same app, three platforms — us-east-1 equivalent, on-demand, monthly
ASSUMPTIONS
  web service    ~0.15 vCPU avg, 0.5 GB memory, always available
  worker         ~0.05 vCPU avg, 0.25 GB memory
  postgres       ~0.1 vCPU avg, 1 GB memory, 10-20 GB storage
  egress         50 GB/month
  team           1 deploying developer

RAILWAY (Pro, $20/mo incl. $20 usage credit)
  web            CPU  $3.04  + memory  $5.07            =  $8.11
  worker         CPU  $1.01  + memory  $2.54            =  $3.55
  postgres       CPU  $2.03  + memory $10.15 + vol $1.58 = $13.76
  egress         50 GB x $0.05                          =  $2.50
                                                          -------
                                                          ~$28

VERCEL + SUPABASE
  Vercel Pro     1 seat, $20 credit, 1 TB transfer incl.  $20.00
  Supabase Pro   8 GB DB, 250 GB egress, Micro compute    $25.00
  overages       none at this scale                        $0.00
                                                          -------
                                                           $45

AWS (Fargate + RDS + ALB, on-demand)
  Fargate        0.5 vCPU x 730h x $0.04048             = $14.78
                 1 GB    x 730h x $0.004446             =  $3.25
  ALB            730h x $0.0225 + ~$2 LCU               = $18.43
  RDS t4g.small  730h x $0.032 + 20 GB storage          = $25.66
  egress         50 GB, under the 100 GB free tier      =  $0.00
                                                          -------
                                                          ~$62
  not included:  NAT gateway (~$33/mo + $0.045/GB) if the
                 task runs in a private subnet

Two things are worth reading off that ledger. The first is that AWS is the most expensive of the three at this size and stays that way until the workload is large enough for reserved capacity, Savings Plans, or Graviton to bite — the load balancer alone costs more per month than Railway's entire compute bill here. The second is that the Vercel and Supabase number is the only one that barely moves: flat fees are worse value at the bottom and much easier to forecast, which is a real feature when someone has to approve the spend.

Where does Railway win?

When the app is not just a web frontend. Anything with a queue, a scheduled job, a long-running process, a websocket server, or a service written in something other than JavaScript fits Railway naturally and fits a frontend platform awkwardly. Per-second billing on actual consumption also means idle services are genuinely cheap rather than nominally cheap.

It wins on portability too. Containers are the least proprietary artifact in this comparison — if Railway stops suiting you, the same image runs on Fly, on Render, on ECS, on a virtual machine. That is the thinnest lock-in available short of running your own hardware.

Where does Vercel plus Supabase win?

When the app is a Next.js application whose backend is mostly CRUD, authentication, and file uploads. That combination is the exact shape both products are built around, and the amount of work you skip is substantial: preview deployments per branch, a CDN and image pipeline you did not configure, and auth with row-level security rather than a rolled-your-own session table.

It also wins on predictability. At small scale you are paying $45 a month and will keep paying roughly $45 a month, which is a different kind of comfort from a usage-based bill that is cheaper on average and occasionally interesting. The caveat is the direction of the cliffs: seats at $20 each, Fast Data Transfer at $0.15–0.35 per GB past the first terabyte, and compliance features priced as add-ons rather than included.

Where does AWS win?

When something external decides for you. Data residency requirements, a compliance regime that wants specific controls, an existing enterprise agreement with committed spend, a client whose security review has an AWS-shaped hole in it — these are good reasons, and they are the common ones in practice.

It also wins at genuine scale and on anything unusual. The economics invert once you can commit to capacity, and there is no equivalent anywhere else for the long tail of services: queues, streams, warehouses, ML infrastructure, VPC peering into a client's own network. What you pay for that is operational surface area — every one of those pieces is now something you own, monitor, and secure.

What does the comparison usually leave out?

The compliance tax. On Vercel, SAML single sign-on is a $300 per month add-on and a HIPAA BAA is $350. On Supabase, SOC 2 and the compliance posture live on the Team plan at $599 a month, and point-in-time recovery is $100 per month per seven days of retention. None of this shows up in a starting-price comparison, and all of it arrives on the day your first serious customer sends a security questionnaire.

The idle bill. AWS charges for provisioned things whether or not they are used — a load balancer, a NAT gateway, an RDS instance at 2% utilisation. Railway bills consumption per second, and Supabase compute is a flat monthly instance size. For a tool that is busy four hours a day, that difference is most of the bill.

Whose weekend it is. The real price difference between managed platforms and raw primitives is measured in engineering hours, not dollars. A day a month of infrastructure work costs more than the entire AWS bill in the ledger above. Platform choice is a staffing decision wearing a pricing page.

So how do you choose?

If the app is Next.js with a conventional backend and you want the bill to be boring, take Vercel plus Supabase. If it has background work, non-JavaScript services, or you want one platform and thin lock-in, take Railway. Take AWS when a requirement names it, when you have the scale to commit to capacity, or when you already have the account and the people — not because it looks more professional on an architecture diagram.

And whichever you pick, keep the data in plain Postgres and the app in a container or a standard framework. That is what makes this decision reversible, which matters more than getting it right the first time. If you are earlier than this — still proving the idea — the free-tier version of the same stack costs about a dollar a month. And if you are further along and wondering what the build itself runs to, that is a separate number entirely.

Questions

Is Railway just a more expensive AWS?

At the same allocated resources, Railway's unit rates are higher — $0.0278 per vCPU-hour against Fargate's $0.04048 looks cheaper until you notice Railway bills per second on what you actually consume while Fargate bills the whole allocation. The larger difference is what you do not buy on Railway: no load balancer line, no NAT gateway, no VPC to design. On small workloads that usually makes it the cheaper bill outright.

Can I use Vercel's free plan for a commercial product?

No. Vercel's fair-use guidelines restrict the Hobby plan to non-commercial, personal use, so a product with a price tag belongs on Pro at $20 a month per deploying seat regardless of how little usage it generates. That is a licensing constraint, not a technical one, and it catches people who are watching their usage graph instead of their plan terms.

What's the real cost of leaving each one?

Railway runs containers, so leaving is mostly a redeploy — the lock-in is thin by design. Supabase is Postgres underneath, so the data moves cleanly, but auth, row-level security policies, storage, and edge functions are where the ties are. AWS has the deepest lock-in by surface area, though the individual pieces — containers, Postgres, S3 — are the most standard things in the industry.

Which one should a small team with no ops person choose?

Railway, or Vercel plus Supabase. Both replace an ops function with a bill, which is the correct trade when the alternative is an engineer spending a day a week on infrastructure that generates no product value. Move to AWS when a specific requirement forces it — compliance, data residency, an existing account with committed spend — not because it seems more serious.

Where these numbers come from

Rates are from each provider's published pricing, checked on 10 August 2026, using US regions on on-demand terms with no commitments or discounts. Cloud pricing moves; verify before you budget against it.

Choosing between these tiers is a scoping decision as much as a technical one, and it is one of the first questions settled on any custom app build.

Written by

Karol

Senior engineer and systems architect behind Tall Karol. Everything published here is grounded in real client work — no roundups, no tools that haven't run in production.

Why Tall KarolWork with Tall Karol

Related notes

More on app development

Related service: App Development

Want this kind of engineering on your project?

Tall Karol takes on fractional and project-based engagements for startups and agencies.

Book a working session