← Back to all tools
Web Hosting

Fly.io

Run full-stack apps on edge hardware with global VMs, PostgreSQL, and automatic SSL.

Deploy a global API with per-region database replicas for low-latency reads
Run a containerized web service close to users in multiple geographic regions

3 shared VMs (256MB each), 3GB persistent storage, 160GB outbound

Fly.io's free tier gives you 3 shared 256MB VMs — treat these as one production VM and two staging environments, not three production services. Use SQLite with LiteFS for persistent data instead of the managed PostgreSQL (which costs extra). The 3GB persistent storage is enough for a small app's database and assets. Expect preemption: architect your app to restart cleanly and store state externally when possible.

Install flyctl → `fly auth signup` → `fly launch` in project dir → deploy → `fly regions add` to scale globally → `fly postgres create` for managed DB. Free tier limited to 3 shared VMs.

Pros

  • Real VMs: Full root access with real VMs — not sandboxed or locked down like serverless platforms
  • Global regions: Deploy to multiple regions globally for low-latency user experiences worldwide
  • Persistent storage: 3GB persistent storage on the free tier — enough for SQLite or small application data

Cons

  • Tight RAM: 256MB shared VMs are very limited — barely enough for a Node.js app + dependencies
  • Learning curve: Requires understanding fly.toml configuration, WireGuard tunnels, and Docker containerization
  • Preemption risk: Free tier VMs can be preempted under load — not suitable for production-critical apps