DEV Community

Alex Spinov
Alex Spinov

Posted on

Fly.io Has a Free Tier — Deploy Apps Globally With 3 Shared VMs and 160GB Bandwidth

Marcus had a problem. His Node.js API ran on a single droplet in New York. Users in Singapore saw 300ms+ latency. He looked at AWS CloudFront, Azure CDN — pricing got complicated. Then someone pointed him to Fly.io.

Forty minutes later, his app was running in 12 regions simultaneously. For free.

What You Get Free

No credit card required. Monthly allowances:

  • 3 shared-cpu-1x VMs (256MB RAM each) — always on, no cold starts
  • 160GB outbound bandwidth per month
  • 3GB persistent volumes for databases/files
  • Anycast networking — single IP routes to nearest region
  • Private networking — encrypted WireGuard tunnels between your apps
  • Automatic TLS — certificates provisioned and renewed free
  • Fly Postgres (free) — 1 VM + 1GB volume
  • Fly Redis via Upstash — 100MB, 10K requests/day

Quick Start

curl -L https://fly.io/install.sh | sh
fly auth login
fly launch
fly deploy
Enter fullscreen mode Exit fullscreen mode

fly launch detects Dockerfiles, package.json, go.mod automatically. Two questions — app name, region — done.

Real Example: Global Node.js API

const express = require('express');
const app = express();

app.get('/health', (req, res) => {
  res.json({
    status: 'ok',
    region: process.env.FLY_REGION || 'unknown',
    timestamp: new Date().toISOString()
  });
});

app.listen(process.env.PORT || 3000, '0.0.0.0');
Enter fullscreen mode Exit fullscreen mode
# fly.toml
app = "my-global-api"
primary_region = "iad"

[http_service]
  internal_port = 3000
  force_https = true
  auto_stop_machines = false
  min_machines_running = 1

[[vm]]
  cpu_kind = "shared"
  cpus = 1
  memory_mb = 256
Enter fullscreen mode Exit fullscreen mode

Deploy and scale:

fly deploy
fly machine run . --region sin  # Singapore
fly machine run . --region fra  # Frankfurt
fly status
Enter fullscreen mode Exit fullscreen mode

Hit https://my-global-api.fly.dev/health — the FLY_REGION field shows which datacenter handled the request. Zero extra config.

What You Can Build

1. Edge API — deploy to 3 regions with Fly Postgres read replicas. Latency drops from 200ms to 20ms.

2. Global webhook receiver — Stripe/GitHub/Twilio webhooks processed at the nearest edge.

3. Database proxy — PgBouncer on a free VM with private networking. Saves you from connection exhaustion.

4. Scheduled jobs — Fly Machines support scheduled execution. Data sync, cache warming without cron.

5. Internal dashboards — admin panels on private networking. Only accessible from your Fly apps.

Free Tier Limits

Memory: 256MB per VM. Node.js with few deps works. Next.js SSR will be tight.

CPU: Shared and throttled. For I/O-bound work only — no image processing or ML inference.

No SLA. Reliable in practice, but no uptime guarantee on free tier.

3 VMs total across all apps, not per app. Plan accordingly.

Bandwidth: 160GB = ~5.3GB/day. $0.02/GB after that.

Why Fly.io Stands Out

Most free tiers: one VM, one region. Vercel Edge is US-only free. Railway sleeps. Render has cold starts.

Fly gives you anycast routing, WireGuard tunnels, auto TLS — infrastructure that costs serious money elsewhere. The fly launch workflow is the fastest path from laptop to global deployment.


Need custom deployment automation? Email spinov001@gmail.com

More free tiers: 36+ Free APIs Every Developer Should Bookmark

Also in this series: Netlify Free Tier | Vercel Free Tier | Railway Free Tier | Render Free Tier

Top comments (0)