Fly.io has five plans in 2026: the free Hobby plan, the $5/month Launch plan, the $29/month Scale plan, the $199/month Pro plan, and custom enterprise pricing above that. The free plan is the most generous of any of the “real” PaaS options for small projects, but it runs out fast once the team’s traffic is real. The real comparison most teams should be making is between the $29 Launch plan and the $199 Pro plan, with the workload that picks Fly.io (regional edge, long-running processes, persistent volumes) as the deciding factor. The hidden costs — bandwidth overage, persistent volume pricing, dedicated IP pricing — are the part the pricing page glosses over.
This post walks through the five plans, the hidden costs, the workload that picks Fly.io, the workload that picks a competitor, and the right time to model the alternative.
Table of contents
- The five plans in 2026
- The free tier reality check
- Launch vs Pro: the real comparison
- The hidden costs the pricing page glosses over
- The workload that picks Fly.io
- The workload that picks a competitor
- The right way to model the bill
- FAQ
The five plans in 2026
The five plans Fly.io published in 2026, in the order they appear on the pricing page:
- Hobby — Free. Three shared CPU VMs with 256MB RAM each, 3GB persistent volume storage, 100GB outbound bandwidth per month. The free plan is for side projects and small experiments. It is the most generous free tier in the category.
- Launch — $5/month. The smallest paid plan. Adds 1GB persistent storage, more shared CPU VMs, and the ability to scale beyond three machines. The right answer for a small production app with low traffic.
- Scale — $29/month. The first plan with dedicated CPU VMs. Adds 10GB persistent storage, higher bandwidth, and the ability to run across multiple regions. The right answer for a production app with predictable traffic.
- Pro — $199/month. The first plan with high-memory dedicated VMs (up to 32GB), priority support, and a larger bandwidth allowance. The right answer for a production app with serious traffic or a database workload.
- Enterprise — Custom. Dedicated hardware, custom SLAs, custom contract terms. The right answer for teams with compliance requirements that the lower plans cannot meet.
The price points are: $0, $5, $29, $199, custom. The first jump is from $0 to $5 (the smallest paid plan). The second jump is from $5 to $29 (the dedicated CPU plan). The third jump is from $29 to $199 (the high-memory plan). The jumps are the moments the team should model carefully.
The free tier reality check
The free tier is generous by industry standards but it has three limits that bite at scale:
- Shared CPU. The free tier’s VMs are shared CPU, which means the team’s app can be preempted by a noisy neighbor. The pattern is fine for a side project; the pattern is not fine for a production app with SLA commitments.
- 256MB RAM. The free tier’s VMs have 256MB of RAM each, which is enough for a small Node.js app or a small API, but not enough for a database workload or a memory-hungry background worker. The team that needs more memory is on the Launch plan within a week.
- 100GB outbound bandwidth. The free tier includes 100GB of outbound bandwidth per month, which is enough for a small API, but not enough for a content-heavy site, a media app, or an app that proxies large payloads. The team that hits 100GB sees the bill jump.
The free tier also has a hard cap on the number of machines (3) and the total storage (3GB). The team that needs more machines is on the Launch plan. The team that needs more storage is on the Launch plan.
The team’s pattern: the free tier is the right answer for the first month, the wrong answer for the third month, and the obvious answer in hindsight for “should we have moved sooner.”
Launch vs Pro: the real comparison
The real comparison most teams should be making is between the $29 Scale plan and the $199 Pro plan. The $5 Launch plan is a stepping stone, not a destination. The comparison breaks down on four dimensions:
- CPU type. Scale has dedicated CPU VMs. Pro has dedicated CPU VMs with higher per-core performance. The difference is the latency consistency under load.
- Memory. Scale tops out at 8GB per VM. Pro goes up to 32GB. The team that needs more than 8GB per VM is on Pro.
- Bandwidth. Scale has 1TB outbound bandwidth. Pro has 5TB. The team that proxies a lot of data is on Pro.
- Support. Scale has community support. Pro has priority support. The team that needs SLA-backed support is on Pro.
The price jump from $29 to $199 is 6.9x. The team that does not need the higher memory or the higher bandwidth is paying for features they do not use. The team that does need them is paying for them anyway, in the form of additional Scale machines to make up for the per-VM limit.
The right answer for most production apps is: start on Scale, watch the memory and bandwidth numbers, move to Pro only when the Scale machines hit a limit that Pro would solve.
The hidden costs the pricing page glosses over
The five hidden costs the pricing page glosses over, in order of how often they bite:
- Bandwidth overage. Both Scale and Pro have a bandwidth allowance, and overage is billed at a per-GB rate. The rate is on the pricing page, but the team does not look until the bill arrives. The right answer is to set a billing alert at 80% of the allowance.
- Persistent volume pricing. Persistent volumes are billed per GB per month, separately from the plan price. A 10GB volume on Scale is $0.15/GB/month, which is $1.50/month — small, but the team that has 10 volumes is paying $15/month on top of the plan.
- Dedicated IP pricing. A dedicated IPv4 address is $2/month on most Fly.io plans. The team that needs a fixed IP for an outbound webhook is paying $2/month for the address plus the standard bandwidth costs.
- Cross-region bandwidth. Bandwidth between regions is billed separately from outbound bandwidth. The team that runs in multiple regions is paying for the cross-region traffic, which can be a meaningful line item.
- Organization and team seats. The Hobby plan is single-user. The Launch and Scale plans are also single-user. The Pro plan adds organization features, but the team seats are billed per user per month.
The team’s pattern: the bill is the plan price plus the hidden costs. The plan price is on the pricing page; the hidden costs are on the same page but easy to miss. The right answer is to read the entire pricing page, not just the plan price.
The workload that picks Fly.io
The workload that picks Fly.io has three characteristics:
- Regional edge. The team needs to run the app close to the user, in multiple regions, with low latency between the user and the nearest instance. Fly.io’s regional edge is the platform’s headline feature.
- Long-running processes. The team’s app is a long-running process (a stateful API, a WebSocket server, a queue worker) that does not fit the serverless model. Fly.io’s persistent machines are the platform’s other headline feature.
- Persistent volumes. The team needs stateful storage that survives across deploys, restarts, and machine moves. Fly.io’s persistent volumes are the third headline feature.
The team that fits the three characteristics is the team that Fly.io is built for. The price is fair, the platform is well-designed, and the alternative (a custom Kubernetes cluster) is more expensive at this scale.
The workload that picks a competitor
The workload that picks a competitor has one of these characteristics:
- Cold-start-sensitive serverless. The team’s app is a short-lived request handler that starts and stops frequently. Vercel, AWS Lambda, or Cloudflare Workers is a better fit. Fly.io’s persistent machines are the wrong shape.
- Static site or static asset hosting. The team’s app is a static site, a single-page app, or a media asset. Vercel, Netlify, or Cloudflare Pages is a better fit. Fly.io’s machines are overkill.
- Build pipeline. The team’s app is a CI/CD pipeline or a build pipeline. GitHub Actions, GitLab CI, or Buildkite is a better fit. Fly.io’s machines are the wrong shape.
- Managed Kubernetes. The team’s app is a multi-service system with custom orchestration needs. EKS, GKE, or AKS is a better fit. Fly.io’s machines are a less flexible abstraction.
The team that fits one of these characteristics is the team that Fly.io is not built for. The price may be lower on Fly.io, but the operational shape is wrong.
The right way to model the bill
The right way to model the bill is the same as for any platform: pick the plan, add the hidden costs, and compare to the actual usage. The RunxBuild hosting calculator is the right place to do that exercise. Pick the runtime size, the persistent storage, the bandwidth, the number of machines, and the region count, and the calculator shows what the deploy actually costs at the team’s actual usage. The calculator also shows the comparison to RunxBuild’s pricing, which is the alternative the team should consider when the Fly.io bill grows.
Useful related references:
FAQ
How much does Fly.io cost in 2026?
Five plans: Hobby (free), Launch ($5/month), Scale ($29/month), Pro ($199/month), and Enterprise (custom). The plan price is the base; the bill is the plan plus the hidden costs (bandwidth overage, persistent volume pricing, dedicated IP pricing, cross-region bandwidth, organization seats).
Is the Fly.io free tier enough for production?
No. The free tier has shared CPU, 256MB RAM per VM, and 100GB outbound bandwidth. It is enough for a side project but not for a production app with SLA commitments. The team that needs production-grade resources is on the Launch plan ($5/month) or above.
What is the difference between Launch, Scale, and Pro?
Launch ($5/month) is the smallest paid plan. Scale ($29/month) is the first plan with dedicated CPU VMs. Pro ($199/month) is the first plan with high-memory dedicated VMs (up to 32GB) and priority support. The team’s traffic and resource needs pick the right plan.
What are the hidden costs of Fly.io?
Bandwidth overage (billed per GB), persistent volume pricing (billed per GB per month), dedicated IPv4 addresses ($2/month), cross-region bandwidth (billed per GB), and organization seats (billed per user per month). The plan price is the base; the hidden costs are on the same pricing page but easy to miss.
When should I move off the Fly.io free tier?
The signals: shared CPU is preempting the team’s app under load, 256MB RAM is not enough for the team’s workload, 100GB outbound bandwidth is running out, the team needs more than 3 machines, or the team needs more than 3GB of storage. Any of these is the signal to move to the Launch plan.
When should I choose Fly.io over a competitor?
Three workloads pick Fly.io: regional edge (the app needs to run close to the user), long-running processes (the app is a stateful API or a WebSocket server), and persistent volumes (the app needs stateful storage). A team that fits one of these three is a team that Fly.io is built for.
When should I choose a competitor over Fly.io?
Four workloads pick a competitor: cold-start-sensitive serverless (Vercel, Lambda, Workers), static site hosting (Vercel, Netlify, Cloudflare Pages), build pipelines (GitHub Actions, GitLab CI), and managed Kubernetes (EKS, GKE, AKS). A team that fits one of these is a team that Fly.io is not built for.