← Back to blog

Application platforms · July 18, 2026

Railway vs Fly.io — and three alternatives worth pricing

A solo-founder comparison of Railway, Fly.io, Render, Google Cloud Run, and Cloudflare Workers or Containers across deployment, idle cost, launch traffic, egress, forgotten resources, and cost controls.

13 minute readDocumentedModeled

Method

What this comparison measures

  1. Model one stateless web service; managed databases, third-party APIs, taxes, and support are excluded.
  2. Use three workloads: MVP (100k requests, 10 GB egress), traction (1m requests, 100 GB), and launch (10m requests, 1 TB).
  3. Normalize published compute, memory, request, volume, and egress units in US and EU regions where available.
  4. Treat the totals as a critiqueable envelope, not a quote: concurrency, cache hit rate, sleep behavior, and region alter the result.

The products sell different units

Railway meters CPU and memory usage, then adds storage and public egress. Fly.io sells Machines and volumes by provisioned time, with started and stopped states priced differently. Render mixes instance plans with workspace and network rules. Cloud Run meters active container time and requests. Cloudflare Workers meters requests and CPU time; Containers add active vCPU, memory, disk, and egress.

That means a single monthly total can mislead. A quiet application favors scale-to-zero. A latency-sensitive application with a warm minimum pays for idle capacity. A media-heavy application may spend more on transfer than compute.[1][3][5][7][8]

What turns the meter
PlatformPrimary compute unitFree entryCard / overage behavior
RailwayMeasured vCPU + RAM time$1 monthly Free creditPaid plans are post-paid; usage and Agent limits are separate
Fly.ioProvisioned Machine seconds7 days or 2 VM hoursAll normal organizations require a card
RenderInstance plan + workspace usageFree web service with sleepNo-card free service suspends; card enables overage
Cloud RunvCPU/GiB seconds + requestsAlways-free monthly grantBilling account required for paid use; adjacent services bill separately
CloudflareRequests + CPU, or active container resourcesWorkers FreePaid Workers start at a monthly minimum; product meters differ

One workload, three stages

The chart uses the traffic envelope above, a cacheable response mix, 10 GB of persistent storage after the MVP stage, and no database. The MVP line deliberately uses available free or minimum plans; production readiness is not implied.

Cloudflare is inexpensive only when the workload fits Workers. Moving an arbitrary long-running container to Workers is an architecture change, not a pricing toggle. Cloudflare Containers are now generally available, but their active-resource model belongs in a separate calculation.[8][9]

Modeled application-platform billUSD/month before tax, database, support, and third-party services. US/EU public pricing is close enough for this envelope; egress differences are discussed below.
Modeled application-platform billUSD/month before tax, database, support, and third-party services. US/EU public pricing is close enough for this envelope; egress differences are discussed below.
Public egress exposure at 1 TB/monthIllustrative charge from currently published standard rates or included transfer. Exact Render and Cloud Run totals depend on plan and region; Cloudflare Workers do not charge egress.
Public egress exposure at 1 TB/monthIllustrative charge from currently published standard rates or included transfer. Exact Render and Cloud Run totals depend on plan and region; Cloudflare Workers do not charge egress.Cloudflare Workers$0No Worker egress charge; storage operations can still billFly.io EU / NA$20$0.02/GB granular public transferRailway$50$0.05/GB public egressCloud Run≈$85Modeled after free allowance; exact network SKU is regionalRender≈$90Modeled after plan allowance; verify workspace invoiceUSD/month

The forgotten-resource test

Deleting the web application does not necessarily delete its bill. Fly.io explicitly warns that volumes bill while Machines are stopped and managed Postgres, Upstash, and Tigris services can survive app deletion. A dedicated IPv4 address and snapshots are separate meters.[4]

Railway’s common trap is topology: a database connection through its public URL creates egress, while private networking avoids it. Cloud Run source deployment can create Cloud Build and Artifact Registry charges outside the Cloud Run line item.[2][7]

Render’s free database expires, free services sleep after inactivity, and the presence of a payment method changes whether excess bandwidth or build usage becomes downtime or a charge.[6]

Cost-control strengthEditorial score: hard caps and predictable stops score higher than alerts alone. A high score protects spend, not uptime.
Cost-control strengthEditorial score: hard caps and predictable stops score higher than alerts alone. A high score protects spend, not uptime.Railway4 of 5Usage and resource limits; Agent limit is separateRender no-card5 of 5Free services stop before overageCloudflare Workers4 of 5Free limits are hard; paid products need per-meter attentionCloud Run3 of 5Max instances help; budgets are alerts, not a universal kill switchFly.io2 of 5Cost visibility and machine limits, but card-backed usage continuesof 5

Which one should a solo founder choose?

Choose Railway when the repository-to-service mental model and a readable bill matter more than squeezing every infrastructure unit. Choose Fly.io when regions, Machines, private networking, and low-level control are product requirements and you accept more operational ownership.

Choose Render when you want a conventional PaaS and can live with plan-gated observability. Choose Cloud Run for bursty containerized APIs when a Google Cloud billing account and adjacent services are acceptable. Choose Cloudflare Workers when the application is naturally request-driven and edge-compatible. A zero egress line alone is not enough.

  • Before revenue: optimize for a safe failure mode and an exportable repository.
  • At first revenue: pay for warm latency, backups, and enough telemetry to explain a support ticket.
  • Before a launch: estimate egress separately and rehearse the provider’s spend cap or maximum-scale behavior.
  • After the launch: compare measured resource-hours with the envelope and revise the model instead of changing provider from one invoice.

Source register

Specifications and prices change. The links make this snapshot auditable.

Sources and commercial facts were checked on 2026-07-18. Prices exclude tax unless the source says otherwise.

  1. Pricing plans and resource ratesRailway · pricing
  2. Cost controlRailway · billing
  3. Resource pricingFly.io · pricing
  4. Cost managementFly.io · billing
  5. Workspace plan changesRender · pricing
  6. Deploy for freeRender · billing
  7. Cloud Run pricingGoogle Cloud · pricing
  8. Workers pricingCloudflare · pricing
  9. Cloudflare Containers general availabilityCloudflare · product