# Railway vs Fly.io

Canonical: https://inetgeek.com/compare/railway-vs-fly-io/

Every value below is read from Railway's and Fly.io's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Railway | Fly.io |
| --- | --- | --- |
| Free tier | Yes | No |
| Kind of free offer | Free tier | Free trial |
| What the free plan includes | A $0 plan alongside Hobby at $5 and Pro at $20. Deployment images on the free and trial tier are retained 24 hours, against 72 on Hobby. | Two hours of machine runtime or seven days of access, whichever runs out first, before a payment method is required. |
| Pricing model | A base subscription fee that goes towards usage, with the plan's own credit included; anything beyond the credit is billed as resource usage. | Usage-based, no compute plan tiers; billing is pro-rated for the time resources are provisioned. |
| Egress over allowance | $0.05 / GB | Egress to the public internet is $0.02/GB in North America and Europe, $0.04/GB in Asia Pacific, Oceania and South America, and $0.12/GB in Africa and India. |
| When you exceed a cap | Billed automatically: on the Hobby plan ($5/month, includes $5 of resource usage) usage above the included amount is charged as a delta on top of the subscription — no throttling or suspension is documented | No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans) |
| Memory (entry plan) | 48 GB on Hobby ($5/month) — but that is a ceiling, not an allocation. Railway's table states the figure is a maximum including replica multiplication, so it is 8 GB across each of up to 6 replicas, and memory is billed at $10 per GB per month on top of the $5 fee. Recorded without a magnitude because a cap you pay for is not comparable with an allowance you are given. | 256 MB on shared-cpu-1x, the cheapest Machine at $1.94/month in Ashburn (iad), the region the pricing table shows by default. |
| Streaming response limit | Platform-wide: an HTTP request may run up to 15 minutes while data keeps transferring, and is closed after 5 minutes with none. Idle HTTP/1.1 connections close after 60 seconds between requests. WebSocket connections are exempt. Railway documents the connection's duration here, not how the response is delivered. | No duration or size ceiling documented. Streaming works, but Fly Proxy buffers responses before compressing them, so progressive server-side rendering needs Content-Encoding: none set on those responses. |
| Managed connection pooling | Supported | Supported |
| Git deployment | Supported | Limited |
| Docker deployment | Supported | Supported |
| Scheduled jobs | Supported | Limited |
| Persistent processes | Supported | Supported — A stopped or suspended Machine still bills for its root filesystem at $0.15 per GB per month. |
| Persistent storage | Supported | Supported |
| Managed databases | Limited | Supported |
| Edge network | Supported | Limited |
| Scales to zero | Limited — Serverless sleeps an idle service, but a slept service still holds a slot and is de-prioritised. | Supported |
| Autoscaling | Limited | Limited — Two forms: autostop/autostart of existing Machines, and metrics-based autoscaling. |
| Regions | 4 regions: California, Virginia, Amsterdam, Singapore | 17 regions |
| Support on entry paid plan | Community support on Trial and on Hobby, the entry paid plan. Pro gets "Railway support"; Enterprise adds support SLOs. | Community support is free. Paid support is a separate subscription on top of compute, not a plan tier: Standard $29/month, Premium $199/month. |

## Where they differ

### Free tier

- Railway: Yes ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: No ([source](https://fly.io/docs/about/free-trial/))
- Lean: 78% Railway / 22% Fly.io — whether it is offered at all. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Kind of free offer

- Railway: Free tier ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: Free trial ([source](https://fly.io/docs/about/free-trial/))
- Lean: none. No documented basis to lean either way on this criterion.

### What the free plan includes

- Railway: A $0 plan alongside Hobby at $5 and Pro at $20. Deployment images on the free and trial tier are retained 24 hours, against 72 on Hobby. ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: Two hours of machine runtime or seven days of access, whichever runs out first, before a payment method is required. ([source](https://fly.io/docs/about/free-trial/))
- Lean: none. No documented basis to lean either way on this criterion.

### Pricing model

- Railway: A base subscription fee that goes towards usage, with the plan's own credit included; anything beyond the credit is billed as resource usage. ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: Usage-based, no compute plan tiers; billing is pro-rated for the time resources are provisioned. ([source](https://fly.io/docs/about/pricing/))
- Lean: none. No documented basis to lean either way on this criterion.

### Egress over allowance

- Railway: $0.05 / GB ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: Egress to the public internet is $0.02/GB in North America and Europe, $0.04/GB in Asia Pacific, Oceania and South America, and $0.12/GB in Africa and India. ([source](https://fly.io/docs/about/pricing/))
- Lean: 29% Railway / 71% Fly.io — inversely proportional to the documented price. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### When you exceed a cap

- Railway: Billed automatically: on the Hobby plan ($5/month, includes $5 of resource usage) usage above the included amount is charged as a delta on top of the subscription — no throttling or suspension is documented ([source](https://docs.railway.com/pricing/plans))
- Fly.io: No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans) ([source](https://fly.io/docs/about/pricing/))
- Lean: none. No documented basis to lean either way on this criterion.

### Memory (entry plan)

- Railway: 48 GB on Hobby ($5/month) — but that is a ceiling, not an allocation. Railway's table states the figure is a maximum including replica multiplication, so it is 8 GB across each of up to 6 replicas, and memory is billed at $10 per GB per month on top of the $5 fee. Recorded without a magnitude because a cap you pay for is not comparable with an allowance you are given. ([source](https://docs.railway.com/reference/pricing/plans))
- Fly.io: 256 MB on shared-cpu-1x, the cheapest Machine at $1.94/month in Ashburn (iad), the region the pricing table shows by default. ([source](https://docs.fly.io/about/pricing/))
- Lean: none. No documented basis to lean either way on this criterion.

### Streaming response limit

- Railway: Platform-wide: an HTTP request may run up to 15 minutes while data keeps transferring, and is closed after 5 minutes with none. Idle HTTP/1.1 connections close after 60 seconds between requests. WebSocket connections are exempt. Railway documents the connection's duration here, not how the response is delivered. ([source](https://docs.railway.com/networking/public-networking/specs-and-limits))
- Fly.io: No duration or size ceiling documented. Streaming works, but Fly Proxy buffers responses before compressing them, so progressive server-side rendering needs Content-Encoding: none set on those responses. ([source](https://fly.io/docs/reference/content-encoding/))
- Lean: none. No documented basis to lean either way on this criterion.

### Git deployment

- Railway: Supported ([source](https://docs.railway.com/deployments/github-autodeploys))
- Fly.io: Limited ([source](https://fly.io/docs/launch/continuous-deployment-with-github-actions/))
- Lean: 64% Railway / 36% Fly.io — documented support level. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Scheduled jobs

- Railway: Supported ([source](https://docs.railway.com/reference/cron-jobs))
- Fly.io: Limited ([source](https://fly.io/docs/machines/flyctl/fly-machine-run/))
- Lean: 64% Railway / 36% Fly.io — documented support level. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Managed databases

- Railway: Limited ([source](https://docs.railway.com/databases))
- Fly.io: Supported ([source](https://docs.fly.io/about/pricing/))
- Lean: 36% Railway / 64% Fly.io — documented support level. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Edge network

- Railway: Supported ([source](https://docs.railway.com/networking/edge-networking))
- Fly.io: Limited ([source](https://fly.io/docs/reference/architecture/))
- Lean: 64% Railway / 36% Fly.io — documented support level. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Scales to zero

- Railway: Limited — Serverless sleeps an idle service, but a slept service still holds a slot and is de-prioritised. ([source](https://docs.railway.com/reference/app-sleeping))
- Fly.io: Supported ([source](https://fly.io/docs/launch/autostop-autostart/))
- Lean: 36% Railway / 64% Fly.io — documented support level. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Regions

- Railway: 4 regions: California, Virginia, Amsterdam, Singapore ([source](https://docs.railway.com/reference/regions))
- Fly.io: 17 regions ([source](https://docs.fly.io/reference/regions/))
- Lean: 19% Railway / 81% Fly.io — proportional to the documented capacity. inetGeek's own reading, computed from the two values above by the rules at https://inetgeek.com/methodology/, not a provider claim.

### Support on entry paid plan

- Railway: Community support on Trial and on Hobby, the entry paid plan. Pro gets "Railway support"; Enterprise adds support SLOs. ([source](https://railway.com/pricing))
- Fly.io: Community support is free. Paid support is a separate subscription on top of compute, not a plan tier: Standard $29/month, Premium $199/month. ([source](https://fly.io/pricing))
- Lean: neither leads — both document the same answer.

## Which should you choose?

Pick Railway if Teams that want a plan fee which doubles as usage credit, and deploy services straight from a Dockerfile without managing servers. The $5 Hobby fee comes back as $5 of resource usage.

Pick Fly.io if Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.

Consider something else: Railway — You need to run in a region outside California, Virginia, Amsterdam or Singapore.

Consider something else: Fly.io — You want a predictable flat bill rather than charges that track the resources provisioned for each app.

## Documented by only one

One side documents these and the other does not. An absence is a missing source, not a stated "no" — except where a line says the other page was READ on a date and does not mention it, which is a sourced observation and the only one-sided case this site leans on.

- Credit card to start: Fly.io: No — Apps stop when the trial's 2 machine-hours or 7 days run out, whichever comes first, until a card is added.
- When the free offer ends: Fly.io: 7 days, or when the trial's included resources run out — whichever comes first.
- Entry paid plan: Railway: $5 / month (Hobby)
- Storage (entry plan): Railway: 0.5 GB of volume storage on Free and up to 5 GB on Hobby ($5/month) — a ceiling, not an allocation, and volume storage is billed on usage rather than included. Recorded without a magnitude for the same reason as this record's memory figure: a cap you pay for is not comparable with an allowance you are given.
- Sites or apps included: Railway: 50 projects and 50 services per project on Hobby; Pro raises both to 100 and Enterprise is unlimited.
- Monthly visits cap: Railway: No monthly visit or bandwidth cap is published. Rate limits are platform-wide: about 11,000 HTTP requests per second to a domain, and 10,000 concurrent connections.
- File, inode or volume limit: Fly.io: 8 GB rootfs (deployed image) limit per Machine, platform-wide on all plans; exceeding it fails the image push at deploy time
- Max request duration: Railway: 15 minutes while data keeps transferring; closed after 5 minutes with no data transferred. Websocket connections are exempt and can stay open indefinitely.
- CPU time limit: Fly.io: Platform-wide, per Machine size: shared vCPUs get a 5ms CPU quota per 80ms period (6.25%); performance vCPUs get the full 80ms. Quotas are shared across a Machine's vCPUs, and tasks are throttled for the rest of the period once the quota is reached.
- Uptime SLA: Railway: Published as availability targets rather than a contractual SLA: 99.9% on Hobby, 99.99% on Pro, 99.999% on Enterprise, which also adds support SLOs.
- Audit logs: Railway: Audit Logging is listed under Product Security, and Data Access Logging under Access Control. Neither is described further and no retention period is given.
  - Fly.io: not stated on https://fly.io/security/, read 2026-09-21. Corrections: https://inetgeek.com/contact/
  - Lean: 78% Railway / 22% Fly.io — documented, against a vendor page that does not state it (checked 2026-09-21).
- Response time commitment: Fly.io: 36-hour first response on Standard, the cheapest paid support plan at $29/month.
- SOC 2: Railway: SOC 2 Type 2 and SOC 3, both listed under Compliance, with SOC 2 and SOC 3 reports among the documents. The reports are gated rather than public: the Trust Center asks visitors to request access and frames the whole page as starting a security review.
  - Fly.io: not stated on https://fly.io/security/, read 2026-09-21. Corrections: https://inetgeek.com/contact/
  - Lean: 78% Railway / 22% Fly.io — documented, against a vendor page that does not state it (checked 2026-09-21).
- HIPAA: Railway: HIPAA is listed under Compliance and a HIPAA report is among the documents, behind the same access request as the rest. The Trust Center does not mention a business associate agreement.
  - Fly.io: not stated on https://fly.io/security/, read 2026-09-21. Corrections: https://inetgeek.com/contact/
  - Lean: 78% Railway / 22% Fly.io — documented, against a vendor page that does not state it (checked 2026-09-21).
- GDPR / data residency: Railway: GDPR is listed under Compliance, alongside the EU-US and Swiss-US Data Privacy Frameworks. No region is named and no residency commitment is made anywhere on the page — the listing is about the regime, not about where data sits.
  - Fly.io: not stated on https://fly.io/security/, read 2026-09-21. Corrections: https://inetgeek.com/contact/
  - Lean: 78% Railway / 22% Fly.io — documented, against a vendor page that does not state it (checked 2026-09-21).
- Encryption at rest: Railway: Encryption-at-rest is listed under Data Security, beside Data Backups and Data Erasure. The Trust Center names the feature and gives no algorithm, scope or key-management detail; disk encryption appears separately under Endpoint Security, which is about staff devices rather than customer data.
  - Fly.io: not stated on https://fly.io/security/, read 2026-09-21. Corrections: https://inetgeek.com/contact/
  - Lean: 78% Railway / 22% Fly.io — documented, against a vendor page that does not state it (checked 2026-09-21).
- Private networking / VPC: Fly.io: No Terraform, no VPC configurations, no IAM: apps talk directly to each other on private networks with zero configuration .

## Questions this comparison answers

**Free tier: Railway or Fly.io?**

Railway: Yes
Fly.io: No

**Egress over allowance: Railway or Fly.io?**

Railway: $0.05 / GB
Fly.io: Egress to the public internet is $0.02/GB in North America and Europe, $0.04/GB in Asia Pacific, Oceania and South America, and $0.12/GB in Africa and India.

**When you exceed a cap: Railway or Fly.io?**

Railway: Billed automatically: on the Hobby plan ($5/month, includes $5 of resource usage) usage above the included amount is charged as a delta on top of the subscription — no throttling or suspension is documented
Fly.io: No plan cap to exceed — Fly bills per second for provisioned resources. The only documented enforcement is unspecified automated scaling limits, which surface as an error message (platform-wide, all plans)

**Should I choose Railway or Fly.io?**

Pick Railway if Teams that want a plan fee which doubles as usage credit, and deploy services straight from a Dockerfile without managing servers. The $5 Hobby fee comes back as $5 of resource usage.
Pick Fly.io if Workloads that ship as Docker images and need placement in particular regions. Billing is purely usage-based with no plan tiers, which suits spiky or region-pinned traffic better than a flat monthly fee.
