Fly.io Machines vs Upstash Box

Fly.io Machines are microVMs for hosting your own apps in 17 regions: you bring the image, the tools and the agent. Upstash Box is built for agents: a ready container with a coding agent inside that pauses when idle and wakes on the next request, in the US only.

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.

Upstash Box

Upstash Box is a cloud computer for AI agents from Upstash, the company known for serverless Redis, Vector and QStash.

Each box is a Docker container with its own filesystem, shell, git and an optional coding agent such as Claude Code, Codex or OpenCode, which you drive from TypeScript or Python SDKs. A box pauses when it sits idle, keeps its files, and you pay for the CPU it actually uses. Upstash built it to run its own Context7 service and opened it to everyone in March 2026.

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 workloadFly.io Machines: price rankUpstash Box: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs Docker: on Fly you install it in your own image and keep files on a Volume, an Upstash box cannot run it, and boat has it ready.
92nd of 367, with limits
$836 a month
61st of 367, with limits
$464 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
125th of 366, with limits
$816 a month
103rd of 366, with limits
$475 a month
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
Upstash fits short code runs fully, since an idle box costs no CPU and RAM is not billed, while Fly's cheapest rate needs a 1-year reservation.
75th of 345, with limits
$94 a month
10th cheapest of 345
$119 a month
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
boat ranks first and Upstash is close behind, since it wakes a user's paused box on the next request; Fly's API creates about one Machine per second per app.
69th of 361, with limits
$600 a month
2nd cheapest of 361
$222 a month
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 does far better than Upstash for RL rollouts, with per-second billing and Docker you can install in your own image.
48th of 360, with limits
$2,838 a month
352nd of 360, with limits
$8,068 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
52nd cheapest of 364
$1,011 a month
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 jobs that build containers need Docker, which an Upstash box lacks, and they drain a shared Fly vCPU's burst balance; boat has Docker and /dev/kvm on one CPU class.
152nd of 377, with limits
$288 a month
120th cheapest of 377
$1,520 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Upstash's keep-alive box is a cheap flat-price dev box; boat's is a full VM with Docker, root and a 50 GB disk.
118th of 368, with limits
$53 a month
10th cheapest of 368
$20 a month
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 Upstash has a desktop: Fly leaves it to your image and Upstash's browser is headless, while boat streams a Linux desktop at 60fps.
95th of 369, with limits
$173 a month
73rd of 369, with limits
$76 a month
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
49th of 367, with limits
$38 a month
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
37th cheapest of 346
$400 a month
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 does much better than Upstash for mass scraping, since it can spread scrapers across 17 regions while Upstash runs only in AWS us-east-1.
44th of 338, with limits
$1,232 a month
200th of 338, with limits
$8,000 a month
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
225th of 360, with limits
$259 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 itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureFly.io MachinesUpstash Boxboat
Kind of productApp hosting platform; you boot your own image as a microVM through a REST APIAgent sandbox: a ready box with a shell, git and an optional coding agentAgent sandbox: a full VM per agent, ready to use
IsolationFirecracker microVM with its own kernel, on Fly's own serversOne Docker container per box, on AWSFull VM with its own kernel on dedicated AMD Ryzen 9 9950X (Zen 5) hosts
Docker insideYes, with root, if you install it in your image; Fly's own init, no systemdNot documented; the box is itself a container, and custom images are listed as coming soonDocker, root and systemd ready on every machine
Nested virtualizationNo /dev/kvmNo VM support documented/dev/kvm for Android emulators and nested VMs
Files after a stopRoot file system is ephemeral; lasting data goes on one Volume, billed for its full size around the clockA paused box keeps its files; storage keeps billing while pausedThe whole disk is kept, saved every minute and on stop; a stopped sandbox costs nothing
Disk sizeOne Volume of up to 500GB per Machine5, 10 or 20 GB by box size50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size
Idle and wakeFly Proxy stops or suspends idle Machines and wakes them on a request; suspend keeps memory up to 2GBA box pauses when idle and a request to its public URL resumes itStarted and stopped through the API; resume reboots from disk
ForkClone copies a Machine's config; a cloned Volume starts emptySnapshot a running box and start many new boxes from itFork a running sandbox, disk included
Desktop and browserNone built in; you add them to your own imageManaged headless Chromium with AI page actions and CDP; no desktopLinux desktop streamed at 60fps, Chromium, computer use and browser control
Coding agentsNone built in; you install and run agents yourselfClaude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled promptsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
Keeping keys out of the sandboxSecrets arrive as environment variables; Fly's open-source tokenizer proxy can be deployed yourselfHost proxy injects headers into outbound HTTPS on port 443, set when the box is createdAI credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Outbound rulesNetwork policies allow chosen ports and protocols and deny the restAllow all, deny all, or allow and deny by domain and CIDR, changeable on a running boxOpen internet on every plan; no provider-side allowlist
CPUShared vCPUs guarantee 6.25% of a core plus bursts; performance vCPUs get the full core at a higher rateBilled per active CPU hour by box size; RAM not billedOne CPU class on every plan, with no baseline quota or burst balance
Regions17 regions on six continentsUS only (AWS us-east-1)EU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureFly.io MachinesUpstash Boxboat
Full VM (own kernel)YesNoYes
Docker insideYesNoYes
Nested virtualizationNoNoYes
RootYesNot publishedYes
SystemdNoNot publishedYes
Desktop GUINoNoYes
BrowserNoYesYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundYesNoYes
Public IPv4YesNoNo
Egress allowlistYesYesNo
Secret proxyNoYesYes
Secret proxy for any APINoYesYes
Preinstalled agentsNoYesYes
Agent harness APINoYesYes
MCP serverYesYesNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceYesNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNoNot publishedYes
Usage per sandbox (API)NoYesYes
Audit logsNot publishedNot publishedNo
SSONoNoNo
SOC 2YesYesNo
HIPAAYesNoNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

Fly.io MachinesNot measured
Upstash BoxNot measured
boat26.69 runs/s

There is no comparable measurement for either: neither Fly.io Machines nor Upstash Box was part of the public StarSling run where boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. On Fly, speed depends on the CPU class, since shared vCPUs guarantee only 6.25% of a core and get throttled under long load.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Fly.io Machines and Upstash Box have 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.

ScenarioFly.io Machines, a monthUpstash Box, a monthboat, 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$21 · Pay as You Go$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$21 · Pay as You Go$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$900 · Pay as You Go · 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$306 · Pay as You Go$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$1,822 · Pay as You Go$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 figures here use shared vCPUs bought in 1-year reservation blocks for 40% off.

Upstash Box: A standard box is billed for the CPU it actually uses, at $0.10, $0.20 or $0.40 per active CPU hour by size, plus $0.10 per GB-month of storage, and RAM is free. A keep-alive box costs a flat $8, $16 or $32 a month.

Upstash Box: 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 marked a compromise in all five scenarios: it is an app platform, its lowest figures need a 1-year reservation, and its shared vCPUs guarantee only 6.25% of each core, so long builds get throttled. Upstash fits four of the five, but the 50-agent scenario fails because a box cannot run Docker, and its egress price is not published. On boat, 1,000 short jobs at once are queued by start limits even on the $2,000 plan.

ScenarioFly.io MachinesUpstash Boxboat
One coding agent, workdays
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
One agent that never stops
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
50 agents in parallel
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • missing Docker inside
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
Sandboxes for your users
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • egress price not published
None that bite
1,000 short jobs at once
  • different kind of product: app platform
  • 1-year commitment
  • burstable CPU: 6.25% of each vCPU guaranteed, throttled above that
  • egress price not published
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use Fly.io Machines when

you want to boot your own image near users in many regions, host full apps next to your sandboxes, or need big Volumes.

  • 17 regions worldwide. Useful when agents or users sit far apart: Fly runs Machines in 17 regions, from the US to Sydney and Johannesburg.
  • Your own image, with a full app platform. Useful if you host whole apps: you boot any Docker image, with private networking, Anycast IPs, custom domains and raw TCP.
  • Big disks and memory suspend. Useful for data-heavy work: a Volume holds up to 500GB, and small Machines suspend with their memory kept.

Use Upstash Box when

you want a coding agent running today in a light box that pauses when idle, wakes on a request, and runs in the US.

  • Coding agents built in. Useful if you want agents running today: Claude Code, Codex and OpenCode ship in every box with SDKs and webhooks.
  • Idle costs no CPU. Good for agents that wait a lot: you pay only for CPU actually used, RAM is free, and a request wakes the box.
  • Domain-level outbound rules. Useful when an agent may only reach a short list of domains or IP ranges, changeable on a running box.

Where boat fits

Fly gives you a fast microVM but leaves the sandbox for you to build, and Upstash gives you a ready agent box that is only a container. If your agents need a real machine with Docker, a desktop and a disk that keeps everything, boat gives you that ready on every machine.

A full VM with Docker and /dev/kvm

An Upstash box is itself a container, so an agent cannot run a database in Docker or boot an emulator. On Fly you add Docker to your own image, with no systemd and no /dev/kvm.

A disk that keeps everything

A Fly Machine's root file system is ephemeral, so the agent's tools and caches need a Volume billed for its full size around the clock. Upstash keeps files but stops at 20 GB, and storage bills while paused.

A desktop and agents driven from outside

boat streams a 60fps desktop with Chromium and computer use, and you drive agents inside from outside with a prompt, steer and events API. Upstash's browser is headless, and on Fly you build all of it yourself.

Use boat when your agents need a real machine for hours: Docker, emulators, a desktop, coding agents driven from outside and a disk that survives every stop. Compare it one to one: boat vs Fly.io Machines and boat vs Upstash Box.

Questions people ask

Is Fly.io Machines cheaper than Upstash Box?

Often, if you use Fly's cheapest rate, shared vCPUs on a 1-year reservation. One coding agent on workdays is $15 a month on Fly and $21 on Upstash, and 300 user sandboxes are $110 versus $306. One agent that never stops is cheaper on Upstash: $21 against $36 on Fly.

Which is faster, Fly.io Machines or Upstash Box?

Neither has a result in the StarSling CPU benchmark, so there is no fair comparison. Fly's shared vCPUs guarantee only 6.25% of a core and get throttled under long load, while its performance vCPUs get the full core at a higher rate.

Can Fly.io Machines or Upstash Box run Docker?

A Fly Machine is a microVM with root, so you can install and run Docker inside your own image. Upstash's docs do not offer Docker inside a box, since each box is itself a container. boat has Docker, systemd and /dev/kvm ready on every machine.

Do they keep my files when they stop?

On Fly, only what sits on a Volume, since the root file system is ephemeral. An Upstash box keeps its files while paused, with storage still billed, on a disk of 5 to 20 GB. boat keeps the whole disk, saved every minute and on stop.

Which one has coding agents built in?

Upstash Box ships Claude Code, Codex and OpenCode with run and stream APIs. Fly has none built in, so you install and drive agents yourself. boat preinstalls them with a prompt, steer and events API.

Where do Fly.io Machines and Upstash Box run?

Fly runs Machines in 17 regions on six continents. Upstash Box runs only in AWS us-east-1, with more regions planned. boat runs in the EU, in Germany, Finland and France.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons