Northflank vs Unikraft Cloud

Northflank runs each sandbox as a Kata microVM inside a broad developer platform with GPUs, many regions and your own cloud. Unikraft Cloud turns a Dockerfile into a tiny Firecracker microVM that sleeps when idle and wakes in milliseconds, sold as flat plans with a shared pool of running capacity.

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.

Unikraft Cloud

Unikraft Cloud is a microVM cloud from Unikraft Inc. that runs any Dockerfile-based workload as a minimal Linux microVM with millisecond cold starts and scale-to-zero.

Your Dockerfile becomes the VM image at build time, and each instance runs on a heavily customized Firecracker VMM, so it boots in milliseconds and can go into standby when no traffic arrives. It is a general compute platform built for dense, bursty work such as HTTP services, headless browsers and agent fleets, sold as flat self-serve plans plus Enterprise dedicated hosts, on-prem and bring your own cloud. It is not a dev machine you log into: instances are reached through services, the CLI and a sandbox plugin for commands and files.

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 workloadNorthflank: price rankUnikraft Cloud: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory runs Docker and installs packages all over the machine; Northflank keeps only attached volumes across a pause, Unikraft documents no container runtime inside, and boat keeps the whole disk.
159th of 367, with limits
$1,477 a month
Can't run it3rd 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
Can't run it5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Short code runs that sleep between calls suit both: Northflank has per-second plans from a tenth of a vCPU, and Unikraft sleeps after one idle second but caps self-serve at 24 running instances.
84th of 345, with limits
$115 a month
Can't run it186th 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
Northflank does not publish how many sandboxes can run at once, and Unikraft Pro runs only 24 at a time, so hundreds of active users need sales on both; boat runs them self-serve.
89th of 361, with limits
$815 a month
Can't run itCheapest 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
Can't run it34th 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
Can't run it10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
Both run Docker-style builds in some form, but /dev/kvm for Android emulators is not documented on Northflank and is Enterprise only on Unikraft; boat has it on every plan.
38th cheapest of 377
$352 a month
Can't run it4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Northflank has SSH but resets everything outside volumes on a pause; Unikraft has no SSH yet; boat gives SSH and keeps the whole disk.
151st of 368, with limits
$59 a month
219th of 368, with limits
$39 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 ships a desktop, so a computer-use agent means building and streaming one yourself; boat streams a 60fps Linux desktop with Chromium.
151st of 369, with limits
$371 a month
Can't run it6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
Both can run a headless browser you put in your image; boat has Chromium on a desktop in every sandbox.
200th of 367, with limits
$194 a month
Can't run it7th 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
Can't run it6th 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
Can't run it71st 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
Can't run it2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Northflank has self-serve GPU sandboxes from L4 to H100 and up; Unikraft offers GPUs only on Enterprise, and boat is CPU only.
4th cheapest of 98
$693 a month
Can'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

FeatureNorthflankUnikraft Cloudboat
IsolationKata microVM with its own kernel for CPU; gVisor for GPUMinimal Linux microVM on a customized Firecracker VMMFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Machine sizePlans from 0.1 vCPU up to 20 vCPU / 40 GB, more on requestPlan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox on the $100 plan and above
What survives a stopOnly attached volumes, which bill while paused; the rest of the disk and all processes resetStandby after 1 idle second; stateful mode snapshots memory and resumes with warm cachesThe whole disk, saved every minute and on stop; stopped sandboxes cost nothing
Wake on requestNo; there is no idle auto-pause, you pause and resume yourselfYes; incoming traffic wakes a sleeping instance in millisecondsNo; a stopped sandbox is started by API
Snapshots and forkFilesystem snapshots of a running sandbox, opt-in; restore into a new oneCheckpoint memory and volumes of a running microVM, then start new instances from itAutomatic disk snapshots every minute; fork a running sandbox
Docker insideYes, each sandbox has its own kernelThe Dockerfile becomes the VM image; no container runtime inside documentedYes, Docker, systemd and root, like any Ubuntu machine
Nested virtualizationNot documented inside a sandboxYes, with a per-instance flag, Enterprise onlyYes, /dev/kvm for Android emulators and VMs on every plan
SSHYes, plus a browser terminalNot yet; commands and files go through the sandbox plugin and CLIYes, into every sandbox
Desktop and browserHeadless; none built inNone built in; you can run your own headless browser from a Dockerfile60fps Linux desktop, Chromium and computer use built in
Coding agentsHarnesses with Claude Code, Codex, Cursor, OpenCode or Pi, reached through a terminal or SSHNone preinstalled; you bring the agent in your own imageSeven agents preinstalled, with a prompt, steer and events API
Keeping API keys out of the sandboxHeader injection for listed hosts in the network policy APINetwork shield can inject secrets, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API on every plan; switch to another account when credits run out
Inbound accessHTTPS ports on a code.run domain; public TCP and UDP through a separate load balancerHTTP on 80, HTTPS on 443 and TLS-wrapped TCP on its load balancer; no public IP per instanceHTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6
GPUsL4, A100, H100, RTX PRO 6000 and more, self-serveNVIDIA GPUs and vGPUs on Enterprise onlyNo
RegionsUS, Canada, Brazil, UK, EU, Switzerland, Asia, Australia and South AfricaDallas, Frankfurt, San Francisco, Singapore and Washington DC; more on requestEU only (Germany, Finland, France)
Every feature Battleships tracks (43)
FeatureNorthflankUnikraft Cloudboat
Full VM (own kernel)YesYesYes
Docker insideYesNoYes
Nested virtualizationNoYesYes
RootNot publishedYesYes
SystemdNot publishedNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHYesNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesYesYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopNoYesNo
Wake on requestNoYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundYesNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUYesYesNo
WindowsNoNoNo
Arm64YesYesNo
Self-hostingYesYesNo
BYOCYesYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsNot publishedNot publishedYes
Usage per sandbox (API)YesNoYes
Audit logsYesYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

NorthflankNot measured
Unikraft CloudNot measured
boat26.69 runs/s

Neither Northflank nor Unikraft Cloud has a comparable CPU measurement: neither is in the hpc-sandbox-benchmarks run. boat 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. Unikraft states cold starts under 10 ms, which is its own figure and measures start time, not CPU speed.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Northflank and Unikraft Cloud 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.

ScenarioNorthflank, a monthUnikraft Cloud, 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
$32 · Developer Sandbox (free tier) · with limits$39 · Hobby$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$39 · Hobby$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 limitsCan't run it$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 limitsCan't run it$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 limitsCan't run it$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.

Unikraft Cloud: Unikraft charges a flat monthly fee for a pool of running capacity: free for 2 vCPU / 4 GiB, $39 for 8 vCPU / 8 GiB, $199 for 24 vCPU / 32 GiB, with sleeping instances not counted. It publishes no per-hour or egress rate, so anything bigger is an Enterprise quote.

Unikraft Cloud: 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. On Unikraft the limit is the shared pool: one 4 vCPU / 8 GB agent fills the Team plan, and 50 agents, sandboxes for your users or 1,000 short jobs fit no self-serve plan. boat fits all but the burst scenario, where even the $2,000 plan queues starts above 90 a minute.

ScenarioNorthflankUnikraft Cloudboat
One coding agent, workdays
  • files survive a stop only in attached volumes: packages installed elsewhere reset
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
One agent that never stops
  • files survive a stop only in attached volumes: packages installed elsewhere reset
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
50 agents in parallel
  • files survive a stop only in attached volumes: packages installed elsewhere reset
  • how many machines can run at once: limit not published, probably fine at 50 (the typical published limit is 50)
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
None that bite
Sandboxes for your users
  • not confirmed: how many machines can run at once (you need 300; the typical published limit is 50)
  • no pool tier with 600 vCPU / 1,200 GiB for 300 VMs
  • no published per-resource rate
None that bite
1,000 short jobs at once
  • not confirmed: how many machines can run at once (you need 1,000; the typical published limit is 50)
  • no pool tier with 2,000 vCPU / 4,000 GiB for 1,000 VMs
  • no published per-resource rate
  • 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 Northflank when

you need GPUs next to the agent, regions outside the US and Europe, large single machines, or sandboxes in your own cloud next to the rest of your apps.

  • GPUs without a contract. For agents that train or run models: Northflank sells GPU sandboxes from L4 to H100 per hour, while Unikraft keeps GPUs for Enterprise.
  • Bigger single machines. For heavy builds: one Northflank sandbox can have 20 vCPU / 40 GB, more than Unikraft's whole largest self-serve pool.
  • One platform, many regions. For teams that also run services and databases, or need regions in South America, Australia or Africa next to their users.

Use Unikraft Cloud when

you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, on a flat monthly bill.

  • Millisecond wake and scale-to-zero. For many small services that sleep most of the time and must answer the next request in milliseconds.
  • Memory checkpoints. For fast cloning: Unikraft checkpoints a running microVM's memory and starts new instances from it with warm caches.
  • A flat, predictable bill. For small teams: a flat monthly fee covers the running pool, and sleeping instances do not count against it.

Where boat fits

If what you are really running is coding or computer-use agents, look at boat. Northflank resets the disk outside volumes on every pause, and Unikraft is built for small instances that sleep, with no Docker inside documented and no SSH. boat gives each agent a whole machine that comes back as it was left, with the agent, a desktop and a browser already inside.

The whole machine comes back

Agents install packages everywhere. On Northflank a pause wipes all but attached volumes, which bill while paused; on Unikraft you bake tools into the image. boat saves the whole disk every minute and a stopped sandbox costs nothing.

Docker, /dev/kvm and a desktop inside

Neither ships a desktop, Northflank does not document /dev/kvm, and Unikraft keeps it for Enterprise. boat has Docker, systemd, /dev/kvm and a 60fps desktop with Chromium on every plan.

Agents and keys driven from outside

Northflank Harnesses are reached by terminal or SSH, and Unikraft has no agents and puts secret injection behind Enterprise. boat preinstalls seven agents with a prompt and steer API, and keeps real keys in a credentials proxy.

Use boat when your agents work on one machine for hours or days and should find it as they left it: Docker, emulators, a desktop and a browser, with the agent driven from your code. Compare it one to one: boat vs Northflank and boat vs Unikraft Cloud.

Questions people ask

Is Northflank cheaper than Unikraft Cloud?

For one agent that never stops, no: it is $108 a month on Northflank against $39 on Unikraft's Team plan, and $26 on boat. For one agent on workdays, Northflank is $32 against $39 on Unikraft, though Northflank resets files outside volumes. For 50 agents or hundreds of user sandboxes, Unikraft needs an Enterprise quote.

Which is faster?

Neither has a comparable CPU measurement, so there is no fair speed ratio. Unikraft wakes sleeping instances in milliseconds, which is its main design goal. boat did 26.69 runs per second on the hpc-sandbox-benchmarks Node.js test at 4 vCPU / 8 GB.

Can Northflank or Unikraft Cloud run Docker inside?

Northflank sandboxes have their own kernel, so Docker can run inside. Unikraft uses your Dockerfile to build the VM image and does not document a container runtime inside a running instance. boat is a full Ubuntu VM with Docker, systemd and /dev/kvm.

Can I SSH into each?

Northflank, yes, through SSH or a browser terminal. Unikraft has no SSH yet; you run commands and move files through its sandbox plugin and CLI. Every boat sandbox has SSH and an API.

Which one has GPUs?

Northflank sells GPU sandboxes from L4 to H100 and up per hour. Unikraft offers NVIDIA GPUs only on Enterprise. boat runs on CPUs only.

Does either keep files when a sandbox stops?

Northflank keeps only attached volumes, and the rest of the disk resets on a pause. Unikraft's stateful mode snapshots memory into standby and resumes with warm caches. boat saves the whole disk every minute and on stop.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons