Fly.io Machines vs Modal VM Sandboxes
Fly.io Machines are microVMs for hosting your own apps near users, with no time limit but a root disk that resets. Modal VM Sandboxes are full Linux VMs with Docker and systemd built for agents, but each one ends within 24 hours.
The companies and products
Fly.io Machines
Fly.io is an app hosting platform, and Machines are the microVMs underneath it that you can also start and stop through a REST API.
A Fly Machine boots your Docker image as a Firecracker microVM on Fly's own servers, in one of 17 regions. You pick a shared or performance CPU preset, attach at most one Volume for data that must last, and Fly Proxy can stop, suspend and wake Machines as traffic comes and goes. It is built for teams that host web apps and services worldwide; it is not a sandbox product, so this page compares the parts that overlap with agent work.
Modal VM Sandboxes
Modal is a serverless cloud for AI work, and VM Sandboxes are the version of its sandboxes that run in a virtual machine with their own Linux kernel.
You create a VM Sandbox from Python, TypeScript or Go code with runtime="vm", run commands in it, and terminate it when the job is done. Modal built the runtime on the Rust-based Cloud Hypervisor, so Docker, FUSE, systemd and nested cgroups work, with the same API, images and prices as its gVisor sandboxes. It became generally available on 1 October 2026 and suits teams that want many short-lived agent machines next to Modal's inference and training.
- Funding
- Over $466M raised
- Generally available
- 1 October 2026; early customers launched over 20 million VMs before that
- Session length
- Default 5 minutes, maximum 24 hours
- Compliance
- SOC 2 on every plan; HIPAA on Enterprise
Which use cases each one fits
For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “92nd cheapest of 367” means 91 of the other 366 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.
| Use case and its workload | Fly.io Machines: price rank | Modal VM Sandboxes: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Modal gives the agent Docker and systemd in a real VM but cuts it off at 24 hours, Fly runs as long as you like but resets the root disk; boat fits fully with a kept disk and a desktop. | 92nd of 367, with limits $836 a month | 84th of 367, with limits $759 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An assistant that lives on its machine all month cannot run on Modal VM Sandboxes, which stop at 24 hours, and on Fly it keeps only what sits on its one Volume. | 125th of 366, with limits $816 a month | Can't run it | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Fly fits short code runs better than boat here: per-second billing with no plan fee and cheap shared CPU for code that mostly waits. | 75th of 345, with limits $94 a month | Can't run it | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Users who come back to the same sandbox fit boat, because a stopped boat sandbox keeps its disk and costs nothing while it waits. | 69th of 361, with limits $600 a month | Can't run it | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month Fly (rank 48) and boat (rank 34) both rank well above Modal (rank 171) for RL rollouts, though none of the three is a full fit. | 48th of 360, with limits $2,838 a month | 171st of 360, with limits $16,322 a month | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month | 117th of 364, with limits $457 a month | Can't run it | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI keeps the CPU busy, which drains a shared Fly vCPU's burst balance; Modal runs Docker builds in a real VM; boat adds /dev/kvm for emulators on every plan. | 152nd of 377, with limits $288 a month | 188th of 377, with limits $1,064 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB | 118th of 368, with limits $53 a month | Can't run it | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Neither Fly nor Modal ships a desktop, so you build and stream one yourself; boat has a 60fps desktop with Chromium and computer use. | 95th of 369, with limits $173 a month | Can't run it | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 160th of 367, with limits $90 a month | Can't run it | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 161st of 346, with limits $67 a month | Can't run it | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month Fly ranks higher than boat here: it can spread scrapers across 17 regions and pay only for the seconds they run. | 44th of 338, with limits $1,232 a month | Can't run it | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 118th of 360, with limits $63 a month | 294th of 360, with limits $642 a month | 2nd cheapest of 360 $200 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month | Can't run it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Fly.io Machines | Modal VM Sandboxes | boat |
|---|---|---|---|
| Kind of product | App hosting platform; you boot your own image as a microVM | Sandbox runtime inside Modal's serverless AI cloud | Agent sandbox: a full VM per agent, ready to use |
| Isolation | Firecracker microVM with its own kernel | VM with its own Linux kernel on Cloud Hypervisor | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker and systemd | Root, and Docker you install yourself; Fly's own init, no systemd | Docker, systemd and root; you start dockerd yourself | Docker, root and systemd ready in every sandbox |
| Nested virtualization | /dev/kvm not offered | Team and Enterprise plans only, on request | /dev/kvm on every plan |
| CPU benchmark (4 vCPU / 8 GB) | Not measured; shared vCPUs guarantee 6.25% of a core plus bursts | 15.54 runs/s | 26.69 runs/s |
| Longest session | No documented cap; a Machine runs until you stop it | 24 hours (default 5 minutes) | No cap on paid plans; you set the time to live |
| Files after a stop | Root file system is ephemeral; one Volume per Machine, billed for its full size around the clock | No paused state; only Volumes and filesystem snapshots keep files | The whole disk is kept, saved every minute and on stop; a stopped sandbox costs nothing |
| Memory kept on pause | Suspend keeps memory for Machines up to 2GB | Memory snapshots in alpha; snapshotting ends the sandbox, expires after 7 days | No; resume boots again from disk |
| Fork | Clone copies a Machine's config; a cloned Volume starts empty | Snapshot the filesystem into an image and boot many sandboxes from it | Fork a running sandbox, disk included |
| Wake on request | Fly Proxy stops idle Machines and wakes them when a request arrives | No | You start and stop machines through the API |
| Desktop and coding agents | None built in; you add them to your own image | Examples only; you set up Xvfb, VNC and agents yourself | 60fps desktop, Chromium, computer use, and Claude Code, Codex and more driven from outside |
| Keeping keys out of the sandbox | Environment variables; deploy Fly's open-source tokenizer proxy yourself | Environment variables, or your own proxy in a sidecar | AI credentials proxy for model providers and any HTTPS API |
| Outbound rules | Network policies allow chosen ports and protocols | Block all, IP-range allowlist, domain allowlist (beta) | Open internet, no provider-side allowlist |
| Regions | 17 regions on six continents | US, EU and Asia-Pacific; pinning costs 1.15x to 1.75x | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Fly.io Machines | Modal VM Sandboxes | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | No | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | No | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | Yes | Yes |
| Public IPv4 | Yes | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | Yes | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | No | Not published | Yes |
| Usage per sandbox (API) | No | Not published | Yes |
| Audit logs | Not published | Yes | No |
| SSO | No | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
In the same public StarSling run at 4 vCPU / 8 GB, boat finished 26.69 Node.js build-and-test runs per second and Modal's VM runtime finished 15.54, so boat did about 1.7 times the CPU work in the same time. Fly.io Machines were not part of that run, so there is no comparable score; Fly's shared vCPUs guarantee 6.25% of a core with a burst balance, and its performance vCPUs get the full core at a higher rate.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Modal VM Sandboxes measured on: VM Sandbox, request = size. Fly.io Machines has no published run in this suite yet, so there is no like-for-like number to compare.
Pricing in five scenarios
Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.
| Scenario | Fly.io Machines, a month | Modal VM Sandboxes, a month | boat, a month |
|---|---|---|---|
| One coding agent, workdays 4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days | $15 · Pay As You Go · with limits | $15 · Starter · with limits | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $36 · Pay As You Go · with limits | $178 · Starter · with limits | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $487 · Pay As You Go · with limits | $2,229 · Starter · with limits | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $110 · Pay As You Go · with limits | $792 · Team | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $232 · Pay As You Go · with limits | $3,193 · Team · with limits | $2,000 · $2000/mo · with limits |
Fly.io Machines: Fly bills each Machine per second while it runs, by CPU preset and memory, with no plan fee; Volumes are billed for their full size all month. The table uses Fly's lowest rate: shared vCPUs bought in 1-year reservation blocks for 40% off.
Modal VM Sandboxes: Modal bills by the second for the higher of the CPU and memory you request or use, until the sandbox ends. Starter is free with $30 of monthly credit, Team is $250 a month with $100 of credit, and pinning a region multiplies the price by 1.15x to 1.75x.
Modal VM Sandboxes: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.
Limits in those scenarios
Fly is a compromise in every scenario: its lowest figures need a 1-year commitment and use shared vCPUs that guarantee only 6.25% of each core, so long builds get throttled. Modal VM Sandboxes end within 24 hours and keep files only in Volumes or snapshots, so the workday, always-on and fleet scenarios do not fit; its 1,000-job burst runs on shared vCPUs that other tenants can slow. On boat the limit that bites is start speed: even the $2,000 plan starts 90 sandboxes a minute, so 1,000 jobs at once get queued.
| Scenario | Fly.io Machines | Modal VM Sandboxes | boat |
|---|---|---|---|
| One coding agent, workdays |
|
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel |
|
| None that bite |
| Sandboxes for your users |
| None that bite | None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Fly.io Machines when
you host web apps or light services that must run near users worldwide, sleep between requests and wake on traffic.
- 17 regions worldwide. Useful if users sit far from Europe and the US: Fly runs Machines in 17 regions, from Sydney to Johannesburg.
- No time limit and wake on request. Useful for services that sleep between requests: a Machine runs as long as you want, and Fly Proxy wakes it on traffic.
- A full app platform around it. Useful if you host whole apps: private networking, Anycast IPs, custom domains and port-level network policies come with each Machine.
Use Modal VM Sandboxes when
you run huge bursts of short agent jobs that need a real kernel, finish within a day, or sit next to models you already run on Modal.
- A real VM made for agents. Useful when agents need Docker, FUSE and systemd: each sandbox gets its own Linux kernel, plus systemd that Fly Machines do not have.
- Very large bursts. Useful for huge waves of short jobs: Modal runs 5,000 containers at once on Team and more on Enterprise.
- Strict outbound rules and one AI platform. Useful if you serve models on Modal already: sandboxes can be limited to chosen domains and share one bill with inference.
Where boat fits
If what you are really running is coding agents that work for hours or days, neither option is made for it: Fly is an app host that resets its root disk, and Modal ends each VM within 24 hours. boat gives every agent a full VM that keeps its whole disk, stops for free and comes with a desktop, coding agents and a keys proxy.
A disk that keeps everything
An agent leaves tools, repos and caches all over its disk. Fly keeps only one Volume, billed even while stopped, and a Modal VM loses its root disk within 24 hours. boat saves the whole disk every minute and on stop.
Docker, systemd and /dev/kvm ready
Fly has no systemd and no /dev/kvm, and Modal gives nested virtualization only on Team after asking support. On boat, Docker builds, emulators and nested VMs work on every plan from the first boot.
Desktop, agents and keys built in
On both Fly and Modal you build the desktop, browser and agent harness yourself, and keys sit in environment variables unless you run your own proxy. boat ships a 60fps desktop, coding agents driven from outside and an AI credentials proxy.
Use boat when your agents do real work for hours or days: installs, builds, tests, Docker and emulators on a faster VM whose disk survives every stop, with a desktop, coding agents and a keys proxy built in. Compare it one to one: boat vs Fly.io Machines and boat vs Modal VM Sandboxes.
Questions people ask
Is Fly.io Machines cheaper than Modal VM Sandboxes?
At Fly's cheapest rate, shared vCPUs on a 1-year reservation, mostly yes: one always-on agent is $36 a month on Fly against $178 on Modal, and 50 parallel agents are $487 against $2,229. One agent on workdays is $15 on both. Fly's figures assume work that stays within a shared vCPU's 6.25% baseline.
Which is faster, Fly.io Machines or Modal VM Sandboxes?
There is no shared benchmark: Fly.io Machines were not in the StarSling run. In that run Modal's VM runtime did 15.54 runs per second at 4 vCPU / 8 GB and boat did 26.69. Fly's speed depends on whether you pick shared or performance vCPUs.
Can Fly.io Machines and Modal VM Sandboxes run Docker?
Yes. On Fly you install Docker yourself inside the microVM, which uses Fly's own init and no systemd. Modal's VM runtime supports Docker and systemd, and you start dockerd as the entrypoint. boat has Docker and systemd ready in every sandbox.
How long can each one run?
A Fly Machine has no documented time cap and runs until you stop it. A Modal VM Sandbox defaults to 5 minutes and lasts at most 24 hours; for longer work you snapshot the filesystem and start a new one. boat has no session cap on paid plans.
Do they keep my files when they stop?
Fly's root file system is ephemeral, so only the one attached Volume lasts. A finished Modal VM Sandbox is gone, and only Volumes and snapshots keep files. On boat the whole disk is kept, saved every minute and on stop.
Can I run Android emulators or nested VMs?
Fly does not offer /dev/kvm, so nested VMs are not available. Modal offers nested virtualization on Team and Enterprise after you ask support. boat exposes /dev/kvm on every plan.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Fly.io Machines
- boat vs Modal VM Sandboxes
- E2B vs Fly.io Machines
- Daytona vs Fly.io Machines
- Modal vs Fly.io Machines
- Vercel Sandbox vs Fly.io Machines
- Cloudflare Sandbox vs Fly.io Machines
- Blaxel vs Fly.io Machines
- Runloop vs Fly.io Machines
- Tensorlake vs Fly.io Machines
- Morph Cloud vs Fly.io Machines
- CodeSandbox SDK vs Fly.io Machines