Daytona vs Cloudflare Sandbox: pricing, isolation and limits
Daytona is a sandbox API billed on allocated CPU; Cloudflare's Sandbox SDK runs a container in a VM from a Worker, billed on active CPU.
Runtime runs the same job for 77% less than Daytona and 53% less than Cloudflare. 1,000 one-minute runs of a 2 vCPU sandbox cost $2.76 on Daytona, $1.35 on Cloudflare and $0.64 on Runtime. Runtime bills measured CPU like Cloudflare, at about a third of its rate, and gives every sandbox a Firecracker microVM with its own kernel. Rates checked 23 September 2026.
Estimated compute cost
77% less than Daytona53% less than Cloudflare Sandbox
2 vCPUs · 4 GiB · 60 s a run · 20 CPU-seconds busy
Compute only, at list rates checked 23 September 2026 (Daytona pricing, Cloudflare Containers pricing). Plan fees, network, taxes and free credits are left out. The worked example below shows the arithmetic.
At a glance
Cloudflare's sandboxes run on Cloudflare Containers, so their prices are the Containers prices.
| Daytona | Cloudflare Sandbox SDK | Runtime | |
|---|---|---|---|
| Isolation | Containers by default; VM sandboxes as a separate class | A container in its own VM | Firecracker microVM, own kernel, every sandbox |
| CPU | $0.0504 per allocated vCPU-hour | $0.072 per active vCPU-hour, metered in 10 ms steps | $0.025 per vCPU-hour of measured CPU, with a small floor |
| Memory | $0.0162 per GiB-hour | $0.009 per provisioned GiB-hour; at least 3 GiB per vCPU | $0.0075 per reserved GiB-hour |
| Disk | First 5 GiB free, then $0.000108 per GiB-hour, stopped or not | $0.000252 per provisioned GB-hour | Included while running; paused storage $0.08 per GB-month |
| Billed | Per second | Active CPU in 10 ms steps | Per second |
| Plan fee | None published | Workers Paid, at least $5 a month | None; prepaid credit from $10 |
| Free start | $200 of compute, no card | No free tier; the plan includes 375 vCPU-minutes a month | 50 sandbox hours, no card |
| When idle | Stops after 15 idle minutes by default | Sleeps after 10 idle minutes by default; files are lost | Pause keeps files, memory and processes, 1 to 365 days |
| Called from | Any backend, with an API key | A Cloudflare Worker | Any backend; agents sign in by browser approval |
Is Cloudflare Sandbox cheaper than Daytona?
For an agent that mostly waits, yes: $1.35 against $2.76 in the job below. Cloudflare charges CPU only while the code uses it, $0.000020 a vCPU-second, where Daytona charges every allocated vCPU for the whole run. Cloudflare's memory rate is lower too, $0.009 a GiB-hour against $0.0162.
Two things narrow the gap. A Cloudflare custom size needs at least 3 GiB of memory per vCPU, so a 2 vCPU sandbox pays for 6 GiB, and its disk is billed as provisioned. And when both CPUs stay busy, Cloudflare's active CPU rate, $0.072 a vCPU-hour, is higher than Daytona's allocated $0.0504: the busy job costs $3.35 on Cloudflare and $2.76 on Daytona.
Runtime's measured CPU is $0.025 a vCPU-hour and memory is chosen apart from vCPUs, so it is below both at either end.
Are both of them containers?
Both start from a container image, but they draw the security boundary differently. A Daytona sandbox is a container by default; Daytona sells VM sandboxes as a separate class, and those are the ones that pause with memory and take memory snapshots. Cloudflare puts each sandbox's container inside its own VM.
Every Runtime sandbox is a Firecracker microVM with its own Linux kernel, with no class to choose. MicroVM vs container explains the difference, and Runtime's security sets out its model.
Cost for the same job
1,000 runs of a 2 vCPU sandbox. Each run lasts 60 seconds and keeps the CPU busy for 20 CPU-seconds: an agent that mostly waits for a model. Daytona and Runtime get 4 GiB. Cloudflare's smallest 2 vCPU size has 6 GiB, with 12 GB of disk, the size in Cloudflare's own example.
TextDaytona CPU 1,000 × 60 s / 3,600 × 2 × $0.0504 = $1.68 Memory 1,000 × 60 s / 3,600 × 4 × $0.0162 = $1.08 Total $2.76Cloudflare CPU 1,000 × 20 s × $0.000020 = $0.40 Memory 1,000 × 60 s × 6 × $0.0000025 = $0.90 Disk 1,000 × 60 s × 12 × $0.00000007 = $0.05 Total $1.35Runtime CPU 1,000 × 20 s / 3,600 × $0.025 = $0.14 Memory 1,000 × 60 s / 3,600 × 4 × $0.0075 = $0.50 Total $0.64At 100,000 runs a month that is $276.00 on Daytona, $135.04 on Cloudflare and $63.89 on Runtime. With both CPUs busy for the whole minute, it is $1.33 on Runtime against $2.76 on Daytona and $3.35 on Cloudflare, so Runtime is the cheapest of the three however busy the sandbox is. The Cloudflare figure assumes each sandbox is destroyed when its run ends, and Daytona's disk stays within its free 5 GiB. Plan fees, Workers requests, Durable Object time, network and free credits are left out.
Which one to pick
- Pick Daytona for GPU sandboxes or Windows machines, sandboxes in the US or the EU, or the largest free start of the three, $200 of compute.
- Pick Cloudflare Sandbox if your application already runs on Workers and you want sandboxes in the same account and billing, placed near users across Cloudflare's network. Runtime runs in one US region.
- Pick Runtime for a microVM on every sandbox, measured CPU at about a third of Cloudflare's rate, pause that keeps memory and processes, and an API you call from any backend.
Switch from either one
From Daytona, Runtime's SDK runs your code after one import change:
TypeScriptimport { Daytona } from "withruntime/daytona"; // was: from "@daytona/sdk"Pythonfrom withruntime.daytona import Daytona # was: from daytona import DaytonaIts stop() pauses the sandbox with its files and memory, and delete() ends
it. Daytona's auto_stop_interval maps to Runtime's idlePauseSeconds.
From Cloudflare, the code moves out of the Worker to any server:
getSandbox(env.Sandbox, name) becomes Sandbox.getOrCreate(name),
sandbox.exec(cmd) becomes exec, and proxyToSandbox becomes
box.previews.create(port). A Worker can also call Runtime directly with SDK
0.4.0 or later and the nodejs_compat flag; Runtime vs Cloudflare
has the sample.
TypeScriptimport { Sandbox } from "withruntime";const dev = await Sandbox.getOrCreate("dev", { idlePauseSeconds: 900 });await dev.exec("git pull || true");Or give your coding agent the one instruction in migration: it
switches the project on a branch, tests it on the free trial and reports the
monthly saving. npx withruntime switch --from daytona (or
--from cloudflare) before your first top-up matches that top-up with credit,
up to $100. The Daytona side-by-side is
Runtime vs Daytona.
Sources
Daytona's pricing page rechecked 25 September 2026; the rest checked 23 September 2026.
- Daytona pricing, Daytona sandboxes
- Cloudflare Containers pricing, Containers limits and instance types, Containers architecture, Sandbox lifecycle
- Runtime pricing and security
Facts on this page were checked on 25 September 2026.