# 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. ## 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](/compare/microvm-vs-container) explains the difference, and [Runtime's security](/docs/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. ``` Daytona 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.76 Cloudflare 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.35 Runtime 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.64 ``` At 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: ```ts no-run import { Daytona } from "withruntime/daytona"; // was: from "@daytona/sdk" ``` ```python no-run from withruntime.daytona import Daytona # was: from daytona import Daytona ``` Its `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](/docs/cloudflare-sandbox-alternative) has the sample. ```ts check import { 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](/docs/migrate): 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](/docs/daytona-alternative). ## Sources Daytona's pricing page rechecked 25 September 2026; the rest checked 23 September 2026. - [Daytona pricing](https://www.daytona.io/pricing), [Daytona sandboxes](https://www.daytona.io/docs/en/sandboxes) - [Cloudflare Containers pricing](https://developers.cloudflare.com/containers/pricing/), [Containers limits and instance types](https://developers.cloudflare.com/containers/platform/limits/), [Containers architecture](https://developers.cloudflare.com/containers/concepts/architecture/), [Sandbox lifecycle](https://developers.cloudflare.com/sandbox/concepts/sandboxes/) - Runtime [pricing](/docs/pricing) and [security](/docs/security) Facts on this page were checked on 25 September 2026.