42 / 100

Fly.io pricing teardown

https://fly.io/docs/about/pricing

Fly.io's pricing page is a detailed infrastructure rate card — pure pay-as-you-go with no traditional SaaS tiers. It is highly transparent and technically thorough but is structured as documentation rather than a conversion-optimized pricing page, making it difficult for non-technical buyers or newcomers to quickly understand total cost or make a purchase decision.

Tier structure

Pay As You Go (no named tiers

usage-based across all resources)

Value metric

usage-based: per CPU/RAM second, per GB storage, per GB data transfer

How limits scale

Shared CPU compute (1x, 256MB) per month $1.94 (iad/ewr) → $2.02 (ams/ord) → $2.43–$2.54 (fra/lhr/sin/syd/nrt) → $3.14 (jnb)
Volume storage per GB/month $0.15
Volume snapshot storage per GB/month First 10GB free → $0.08/GB thereafter
Egress to public internet per GB $0.02 (NA/EU) → $0.04 (APAC/Oceania/SA) → $0.12 (Africa/India)
Support plan per month Community (free) → $29 Standard → $199 Premium → $2,500+ Enterprise

Escalation logic

There are no escalating tiers; instead, customers compose costs from granular resource primitives (compute presets, volumes, network, Kubernetes, support add-ons). The only structured escalation is the optional support packages at $29, $199, and $2,500+/month.

Psychological anchors

  • High-anchor enterprise support — Enterprise support starting at $2,500/month anchors the $29 and $199 support tiers as affordable by comparison.
  • Reservation discount framing — Machine reservation blocks are presented as '40% discount' with upfront annual pricing, nudging higher-usage customers toward commitment.
  • Free allowances for legacy plans — Legacy free resource allowances (3 VMs, 3GB storage, 100GB egress) are documented as discontinued, subtly reinforcing that the current model requires payment from the start.
  • Region-based price variation — A region selector dynamically updates prices, making the cheapest regions (iad, ewr) visible as entry anchors while higher-cost regions (jnb) serve as implicit high anchors.
  • Stopped machine pricing — Charging only rootfs ($0.15/GB/30 days) for stopped machines is framed as a cost-saving feature, reducing perceived risk of over-provisioning.

What this page is optimizing for

This page is optimized for developer self-serve transparency and trust-building among technical users who want to calculate exact costs before committing. The exhaustive rate tables, region selector, and documentation-style layout signal that Fly.io prioritizes informed adoption over conversion funnel optimization.

Red flags

  • No recommended or highlighted plan — a first-time visitor has no guidance on where to start or what a typical bill looks like.
  • Overwhelming volume of pricing tables (hundreds of CPU/RAM/region combinations) creates cognitive overload and makes cost estimation impractical without a calculator.
  • No pricing calculator or cost estimator tool is linked or embedded, despite the complexity of the rate structure.
  • No annual vs. monthly toggle for the overall plan — reservation blocks exist but are buried and require upfront cash commitment with no rollover.
  • CTAs are absent from the pricing page itself — there is no 'Sign Up', 'Get Started', or 'Try Free' button visible on the page.
  • Managed Postgres pricing is not shown inline — it redirects to a separate page, breaking the single-page cost estimation flow.
  • GPU machines are marked deprecated with an August 1 end-of-life warning, which may alarm existing GPU users without a clear migration path presented.
  • Legacy plan documentation (Hobby, Launch, Scale) adds noise and confusion for new visitors who encounter discontinued plan details.
  • No trust signals such as customer logos, uptime SLA references, or testimonials are present on this pricing page.
  • Support tiers are buried near the bottom with no feature comparison matrix, making it hard to justify the $199 vs $29 upgrade.

Best-practices scorecard

What works · 2

  • Visible prices — All prices are fully public and granular, with per-second, per-hour, and per-month breakdowns across all regions.
  • Value metric matches usage — Pay-per-second compute billing is well-aligned with infrastructure workloads that scale up and down dynamically.

Half measures · 2

  • Annual discount offered — Reservation blocks offer a 40% annual discount but require upfront payment and are opt-in, not surfaced as a primary pricing option.
  • FAQ or objection handling — Some billing edge cases are explained inline (e.g., stopped machines, snapshot billing, granular vs. non-granular transfer) but there is no dedicated FAQ section.

What's missing · 4

  • Clear recommended tier — No tier is highlighted, badged as 'most popular', or recommended — there is no decision anchor for new customers.
  • Tier differences are scannable — There are no tiers to compare — the page is a flat rate card with no side-by-side feature differentiation.
  • Trust signals present — No customer logos, testimonials, uptime guarantees, or compliance badges appear on the pricing page.
  • Clear CTAs per tier — No signup, trial, or contact CTAs are present on the pricing page itself — conversion is entirely dependent on navigation elsewhere.