Northflank vs Upstash Box
Northflank runs each sandbox in a Kata microVM with its own kernel, on a broad cloud platform with GPUs, many regions and your own cloud. Upstash Box gives each agent a light Docker container in the US that pauses when idle, keeps its files and wakes on the next request.
The companies and products
Northflank
Northflank is a London developer platform for running services, jobs and databases on Kubernetes, and Sandboxes is its product for running untrusted code.
A Northflank sandbox is a container image deployed as a service: CPU sandboxes run in Kata microVMs with their own kernel, and GPU sandboxes run under gVisor. You create and drive them from the JavaScript or Python SDK, the CLI or the dashboard, on Northflank's cloud or inside your own. It suits teams that already want one platform for apps, databases, GPUs and sandboxes.
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. “38th cheapest of 377” means 37 of the other 376 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 | Northflank: 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 Northflank can run Docker in its microVMs but only keeps attached volumes across a pause, and Upstash keeps the whole box but has no Docker inside; bochka keeps the whole disk and runs Docker. | 159th of 367, with limits $1,477 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 | 173rd of 366, with limits $1,365 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 best of the three: an idle box costs no CPU, and a paused box wakes when work arrives. | 84th of 345, with limits $115 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 Upstash and bochka both fit closely, and Upstash wakes a user's paused box on the next request; Northflank does not publish how many sandboxes can run at once. | 89th of 361, with limits $815 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 | 342nd of 360, with limits $1,762 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 | 134th of 364, with limits $689 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 Northflank fits CI well with per-second plans and Docker inside; Upstash fits too but costs more here, and bochka adds /dev/kvm for Android emulators. | 38th cheapest of 377 $352 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 A flat-price keep-alive box on Upstash makes a light dev box; on Northflank only attached volumes survive a pause, and bochka keeps a full VM's disk. | 151st of 368, with limits $59 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 has a desktop: Northflank is headless and Upstash has a headless Chromium, while bochka streams a full Linux desktop at 60fps. | 151st of 369, with limits $371 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 Upstash ships a managed headless Chromium with AI page actions; on Northflank you add a browser to your image, and bochka gives the agent a desktop browser it can see. | 200th of 367, with limits $194 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 | 196th of 346, with limits $117 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 | 83rd of 338, with limits $2,049 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 | 141st of 360, with limits $99 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 Northflank is the only one of the three with GPU sandboxes, from L4 to H100 and up. | 4th cheapest of 98 $693 a month | 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 | Northflank | Upstash Box | bochka |
|---|---|---|---|
| Isolation | Kata microVM with its own kernel for CPU; gVisor for GPU | Docker container per box on AWS | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker inside | Yes, each sandbox has its own kernel | Not documented; the box is itself a Docker container | Yes, Docker and systemd run as on any Linux server |
| What survives a stop | Only attached volumes, which bill while paused; the rest of the disk and all processes reset | The box pauses itself when idle and keeps its files; storage keeps billing while paused | The whole disk, saved every minute and on stop; stopped sandboxes cost nothing |
| Wake on request | No idle auto-pause; you pause and resume it | Yes; a request to a public URL resumes a paused box | No; a stopped sandbox is started by API |
| Snapshots and fork | Filesystem snapshots of a running sandbox, restored into a new one | Snapshot a running box and start many new boxes from it | Automatic disk snapshots; fork a running sandbox |
| Nested virtualization | Not documented inside a sandbox | No; boxes are containers | Yes, /dev/kvm for Android emulators and VMs |
| Biggest machine | 20 vCPU / 40 GB, more on request | Large: 8 vCPU / 16 GB, with a 20 GB disk | Up to 16 vCPU / 32 GB on the $100 plan and above |
| Desktop and browser | Headless; access by SDK, browser terminal or SSH | Managed headless Chromium with AI page actions and CDP; no desktop | 60fps Linux desktop, Chromium and computer use built in |
| Coding agents | Harnesses with Claude Code, Codex, Cursor, OpenCode or Pi; reached through a terminal or SSH | Claude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled prompts | Seven agents preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Header injection for listed hosts in the network policy API | Host proxy injects headers into outbound HTTPS, set when the box is created | Credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Inbound access | HTTPS ports on a code.run domain, private by default; TCP and UDP through a separate load balancer | HTTPS URL per port, public unless you add a token; SSH through a gateway; no raw TCP | HTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6 |
| Outbound rules | Network policies with allow lists by IP, CIDR or domain | Allow all, deny all, or allow and deny by domain and CIDR, changeable on a running box | Open internet, no provider-side allowlist |
| GPUs | L4, A100, H100, RTX PRO 6000 and more | No | No |
| Regions and hosting | US, Europe, Asia, Australia, South America and Africa, or your own cloud | US only (AWS us-east-1) | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Northflank | Upstash Box | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | No | Yes |
| Docker inside | Yes | No | Yes |
| Nested virtualization | No | No | Yes |
| Root | Not published | Not published | Yes |
| Systemd | Not published | 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 | No | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | Yes | No | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | Yes | Yes |
| Secret proxy for any API | Yes | Yes | Yes |
| Preinstalled agents | Yes | Yes | Yes |
| Agent harness API | No | Yes | Yes |
| MCP server | No | Yes | No |
| GPU | Yes | No | No |
| Windows | No | No | No |
| Arm64 | Yes | Yes | No |
| Self-hosting | Yes | No | No |
| BYOC | Yes | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Not published | Not published | Yes |
| Usage per sandbox (API) | Yes | Yes | Yes |
| Audit logs | Yes | Not published | No |
| SSO | Yes | 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
Neither Northflank nor Upstash Box has a result on the hpc-sandbox-benchmarks CPU test, so there is no comparable measurement between them. bochka did 26.69 runs per second on that Node.js build-and-test loop at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Northflank 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 | Northflank, 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 | $32 · Developer Sandbox (free tier) · 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 | $108 · Developer Sandbox (free tier) · 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 | $1,322 · Developer Sandbox (free tier) · 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 | $361 · Developer Sandbox (free tier) · 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 | $688 · Developer Sandbox (free tier) · with limits | $1,822 · Pay as You Go | $2,000 · $2000/mo · with limits |
Northflank: Northflank bills per second for the plan size you pick, with no monthly fee, until you pause the sandbox; there is no idle auto-pause. Volumes cost $0.15 per GB a month even while paused, and outbound traffic costs $0.06 per GB.
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 for Small, Medium and Large, 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: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its whole disk.
Limits in those scenarios
On Northflank the limit that bites is what survives a stop: only attached volumes keep their files, and it does not publish how many sandboxes can run at once, so 300 or 1,000 at a time is not confirmed. Upstash runs no Docker inside a box, so the 50-agent scenario does not fit there, and its egress price is not published. bochka's limit is start rate: for 1,000 short jobs at once, even the $2,000 plan starts at most 90 per minute, so the burst is queued.
| Scenario | Northflank | 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 Northflank when
you need GPUs next to the agent, regions outside the US and Europe, sandboxes in your own cloud, or one platform for apps and sandboxes.
- GPU sandboxes. For agents that train or run models: Northflank has GPU sandboxes from L4 to H100 and up.
- Regions and your own cloud. For teams that need many regions, or sandboxes inside their own AWS, GCP or Azure account.
- A microVM with Docker and big sizes. For workloads that need their own kernel, Docker inside, and up to 20 vCPU / 40 GB.
Use Upstash Box when
your agents mostly wait, should wake on an incoming request, and run light work in the US without Docker.
- Idle costs no CPU, and a request wakes the box. Good for agents that wait a lot: an idle box costs no CPU, and a request to its URL wakes it.
- The whole box survives a pause. A paused box keeps all its files, so an agent can pick up days later without reinstalling.
- Agent APIs and big bursts. Built-in agents with run and stream APIs, and 1,000 boxes at once by default.
Where bochka fits
Look at bochka if your agents need a whole machine that comes back as they left it, with Docker, a desktop and a browser they can see. Northflank keeps only attached volumes across a pause, and Upstash Box keeps its files but is a container with no Docker inside. bochka gives each agent a full VM that keeps its whole disk on every stop.
The whole machine, kept on every stop
On Northflank a pause wipes everything outside attached volumes, so an agent reinstalls its tools. Upstash keeps files but caps the disk at 5, 10 or 20 GB. bochka keeps the whole disk, saved every minute, with free stops.
Docker, systemd and /dev/kvm
Upstash boxes cannot run Docker, so the 50-agent scenario does not fit there. Northflank runs Docker but documents no /dev/kvm. bochka runs Docker, systemd and Android emulators in every sandbox.
A desktop the agent can see
Northflank is headless, and Upstash offers only a headless Chromium over CDP, so computer-use agents need you to build and stream a desktop. bochka streams a 60fps Linux desktop with Chromium and computer-use tools built in.
Use bochka when your agents need a real machine that keeps its whole disk: Docker, emulators, a desktop and a browser, with the agent driven from your code. Compare it one to one: bochka vs Northflank and bochka vs Upstash Box.
Questions people ask
Is Northflank cheaper than Upstash Box?
In four of the five scenarios on this page, Upstash costs less: one agent that never stops is $21 a month on Upstash against $108 on Northflank. For 1,000 short jobs at once, Northflank comes to $688 against $1,822 on Upstash, though Northflank does not confirm that many at once.
Which is faster, Northflank or Upstash Box?
Neither has a result on the hpc-sandbox-benchmarks CPU test, so there is no fair speed comparison. bochka did 26.69 runs per second on that test at 4 vCPU / 8 GB.
Can Northflank or Upstash Box run Docker?
Northflank gives each CPU sandbox its own kernel in a Kata microVM, so Docker can run inside. An Upstash box is itself a Docker container, and its docs do not offer Docker inside it. bochka runs Docker and systemd in every sandbox.
Do they keep files when a sandbox stops?
Upstash keeps a paused box's files, and storage keeps billing. Northflank keeps only attached volumes, and the rest of the disk resets on pause. bochka keeps the whole disk on every stop, and a stopped sandbox costs nothing.
Where do Northflank and Upstash Box run?
Northflank runs in the US, Europe, Asia, Australia, South America and Africa, or in your own cloud. Upstash Box runs only in AWS us-east-1. bochka runs in the EU, in Germany, Finland and France.
Which one has GPUs?
Only Northflank, with GPU sandboxes from L4 to H100 and more. Upstash Box and bochka run on CPUs only.
Try bochka
Install the CLI, then run bochka new.
Product preview