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 workload | Fly.io Machines: price rank | Upstash Box: price rank | bochka: 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 bochka 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 bochka 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; bochka 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; bochka'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 bochka 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 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 | Upstash Box | bochka |
|---|---|---|---|
| Kind of product | App hosting platform; you boot your own image as a microVM through a REST API | Agent sandbox: a ready box with a shell, git and an optional coding agent | Agent sandbox: a full VM per agent, ready to use |
| Isolation | Firecracker microVM with its own kernel, on Fly's own servers | One Docker container per box, on AWS | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X (Zen 5) hosts |
| Docker inside | Yes, with root, if you install it in your image; Fly's own init, no systemd | Not documented; the box is itself a container, and custom images are listed as coming soon | Docker, root and systemd ready on every machine |
| Nested virtualization | No /dev/kvm | No VM support documented | /dev/kvm for Android emulators and nested VMs |
| Files after a stop | Root file system is ephemeral; lasting data goes on one Volume, billed for its full size around the clock | A paused box keeps its files; storage keeps billing while paused | The whole disk is kept, saved every minute and on stop; a stopped sandbox costs nothing |
| Disk size | One Volume of up to 500GB per Machine | 5, 10 or 20 GB by box size | 50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size |
| Idle and wake | Fly Proxy stops or suspends idle Machines and wakes them on a request; suspend keeps memory up to 2GB | A box pauses when idle and a request to its public URL resumes it | Started and stopped through the API; resume reboots from disk |
| Fork | Clone copies a Machine's config; a cloned Volume starts empty | Snapshot a running box and start many new boxes from it | Fork a running sandbox, disk included |
| Desktop and browser | None built in; you add them to your own image | Managed headless Chromium with AI page actions and CDP; no desktop | Linux desktop streamed at 60fps, Chromium, computer use and browser control |
| Coding agents | None built in; you install and run agents yourself | Claude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled prompts | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping keys out of the sandbox | Secrets arrive as environment variables; Fly's open-source tokenizer proxy can be deployed yourself | Host proxy injects headers into outbound HTTPS on port 443, set when the box is created | AI credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Outbound rules | Network policies allow chosen ports and protocols and deny the rest | Allow all, deny all, or allow and deny by domain and CIDR, changeable on a running box | Open internet on every plan; no provider-side allowlist |
| CPU | Shared vCPUs guarantee 6.25% of a core plus bursts; performance vCPUs get the full core at a higher rate | Billed per active CPU hour by box size; RAM not billed | One CPU class on every plan, with no baseline quota or burst balance |
| Regions | 17 regions on six continents | US only (AWS us-east-1) | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Fly.io Machines | Upstash Box | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Yes | Not published | Yes |
| Systemd | No | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | Yes | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | No | 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 | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | No | Yes |
| Public IPv4 | Yes | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | Yes | Yes |
| Secret proxy for any API | No | Yes | Yes |
| Preinstalled agents | No | Yes | Yes |
| Agent harness API | No | Yes | Yes |
| MCP server | Yes | Yes | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | Yes | 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 | Yes | Yes |
| Audit logs | Not published | Not published | No |
| SSO | No | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | No | No |
| EU data residency | Yes | No | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for either: neither Fly.io Machines nor Upstash Box was part of the public StarSling run where bochka 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.
| Scenario | Fly.io Machines, a month | Upstash Box, a month | bochka, 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 bochka, 1,000 short jobs at once are queued by start limits even on the $2,000 plan.
| Scenario | Fly.io Machines | Upstash Box | bochka |
|---|---|---|---|
| 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 |
| 1,000 short jobs at once |
|
|
|
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 bochka 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, bochka 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
bochka 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 bochka 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: bochka vs Fly.io Machines and bochka 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. bochka 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. bochka 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. bochka 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. bochka runs in the EU, in Germany, Finland and France.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Fly.io Machines
- bochka vs Upstash Box
- 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