Fly.io
Deploys your app as an actual VM close to your users across multiple regions. Good for backend-heavy apps that need real compute, not just functions.
What is Fly.io?
Fly.io runs your application as a real virtual machine (a Firecracker microVM, specifically) deployed close to your users across multiple regions, rather than abstracting your app into stateless functions the way a lot of modern hosting platforms do. That means it's a better fit for workloads that need persistent processes, WebSocket connections, background jobs, or anything else that doesn't fit cleanly into a request/response function model. You deploy from a Dockerfile or a supported buildpack via its fly CLI.
Key features
- Deploys as actual VMs, not ephemeral functions, so long-running processes and stateful connections work naturally
- Multi-region deployment with automatic routing to the closest running instance
- Fly Postgres and Fly Volumes for attaching persistent storage directly to your app
- Private networking (6PN) between your own apps across regions without extra configuration
- Fine-grained control over machine size, scaling, and region placement via the CLI or fly.toml config
Who it's for
Backend-heavy applications that need real compute, persistent connections, or multi-region deployment, more than a simple frontend or API that would run fine on a function-based platform. It comes with more infrastructure concepts to learn than a fully managed platform like Vercel, so it's a step up in complexity in exchange for more control.
Pricing
Usage-based, billed for compute (VM size and uptime), storage, and bandwidth, with a limited free allowance for small workloads.