# boxd vs Vercel Sandbox

> Vercel Sandbox runs sessions of up to 24 hours and brings back the disk, not the running processes. A boxd machine keeps its memory while it sleeps, so your app is still running when a request wakes it.

Checked 2026-10-30. Every Vercel Sandbox claim links to Vercel Sandbox's own docs or pricing. Web page: https://boxd.sh/compare/vercel-sandbox/

## At a glance

|  | boxd | Vercel Sandbox |
| --- | --- | --- |
| **Where boxd is ahead** |  |  |
| Sleeps with processes kept | Yes, standby and hibernate | No; disk only |
| Wakes on a request | Yes, HTTPS or SSH · app answers in 156 ms | On SDK calls, not traffic |
| Session limit | None | 45 min Hobby · 24 h Pro |
| Starts from a snapshot, app running | Yes · app answers in 1.19 s | Disk snapshots; processes restart |
| Machines create machines | Yes, signed in as the machine | You pass a token in |
| SSH | Native, own port per machine | SSH-like CLI shell |
| **Where Vercel Sandbox is ahead** |  |  |
| vCPU-hour | $0.047, CPU used | $0.128 per active CPU-hour |
| Regions | Frankfurt (US waitlist) | 19 worldwide |
| SOC 2 | SOC 2 in progress | SOC 2 Type II |

## Use boxd when

- Your services have to keep running between requests
- A sleeping machine should wake on traffic
- Sessions run longer than 24 hours
- You want plain SSH

## Use Vercel Sandbox when

- Your app already lives on Vercel
- Your CPU sits idle most of the time
- You need regions outside Europe

## Where boxd stands out

### Your processes survive a sleep

Stopping a Vercel sandbox saves the filesystem; resuming boots a new session and you start your services again. A boxd machine keeps its memory, so the app is already running: an HTTPS request to a hibernated machine got its answer in 156 ms.

### Composable: the sandbox is one part of the kit

On Vercel, cron jobs and integrations (Vercel Connect) live in the wider Vercel platform and reach sandboxes through Functions you write, and no private network between sandboxes is published. Put together, boxd's parts ran the CI of 10 open-source projects 6× faster than one GitHub-hosted job.

|  | boxd | Vercel Sandbox |
| --- | --- | --- |
| **Composable** |  |  |
| Ready machine described in code | Machine specs, built on one another | OCI images and snapshots |
| Machines create machines | Yes, signed in as the machine | You pass a token in |
| Built-in integrations | 100+, credentials kept out | Vercel Connect, platform-wide |
| Schedules and event triggers | Cron and events; sleeps between runs | Through Vercel Cron Jobs |
| Standalone disks | Yes, outlive the machine | Drives; one writer at a time |
| Private network between machines | Org network, split by tags | Not published |
| Tailscale or NetBird | Both, built in | Secure Compute VPC peering |
| Agent skills or MCP | Agent skills; no MCP server | MCP server and skill |

### Wakes on a request

An HTTPS or SSH request to a sleeping boxd machine wakes it. Vercel resumes a sandbox on an SDK call, not on traffic to its URL.

### Built to stay up

Vercel's own docs say its sandboxes "are not designed to run continuously" and point 24/7 servers to "a traditional VM". A boxd machine is that VM, with no session limit, and it still sleeps when nothing is happening.

### Plain SSH

Every machine has its own SSH port. `ssh my-machine.boxd` works from any terminal, editor or agent, with no CLI tunnel and no token to refresh.

boxd's timings were measured on its production cluster on 2026-10-29, ten runs each, from a client in the same datacenter: a hibernated machine's app answered an HTTPS request in 156 ms median; a new machine from a snapshot answered 1.19 s after the create command.

## Side by side

|  | boxd | Vercel Sandbox |
| --- | --- | --- |
| **The machine** |  |  |
| Full VM, own kernel | Yes, every machine | Yes, Firecracker ([source](https://vercel.com/docs/sandbox/concepts)) |
| Default size | 2 vCPU · 8 GiB · 100 GB | 2 vCPU · 4 GB · 64 GB ([source](https://vercel.com/docs/sandbox/pricing)) |
| Largest, self-serve | 8 vCPU · 32 GiB | 8 vCPU · 16 GB on Pro ([source](https://vercel.com/docs/sandbox/pricing)) |
| Root, systemd, Docker | Yes, plus nested virtualization | Root and Docker; systemd not documented ([source](https://vercel.com/docs/sandbox/concepts)) |
| CPU test (runs/s) | 12.6 (our run) | 12.66 ([source](https://github.com/starslingdev/hpc-sandbox-benchmarks/blob/main/LEADERBOARD.md)) |
| **Composable** |  |  |
| Ready machine described in code | Machine specs, built on one another | OCI images and snapshots ([source](https://vercel.com/docs/sandbox/concepts/images)) |
| Machines create machines | Yes, signed in as the machine | You pass a token in ([source](https://vercel.com/docs/sandbox/concepts/authentication)) |
| Built-in integrations | 100+, credentials kept out | Vercel Connect, platform-wide ([source](https://vercel.com/docs/connect)) |
| Schedules and event triggers | Cron and events; sleeps between runs | Through Vercel Cron Jobs ([source](https://vercel.com/docs/cron-jobs)) |
| Standalone disks | Yes, outlive the machine | Drives; one writer at a time ([source](https://vercel.com/docs/sandbox/concepts/drives)) |
| Private network between machines | Org network, split by tags | Not published ([source](https://vercel.com/docs/sandbox/concepts)) |
| Tailscale or NetBird | Both, built in | Secure Compute VPC peering ([source](https://vercel.com/docs/sandbox/concepts/secure-compute)) |
| Agent skills or MCP | Agent skills; no MCP server | MCP server and skill ([source](https://vercel.com/docs/agent-resources/vercel-mcp/tools/sandboxes)) |
| **Ready when you are** |  |  |
| Sleeps with processes kept | Yes, standby and hibernate | No; disk only ([source](https://vercel.com/docs/sandbox/concepts/persistent-sandboxes)) |
| Wakes on a request | Yes, HTTPS or SSH · app answers in 156 ms | On SDK calls, not traffic ([source](https://vercel.com/docs/sandbox/concepts/persistent-sandboxes)) |
| Starts from a snapshot, app running | Yes · app answers in 1.19 s | Disk snapshots; processes restart ([source](https://vercel.com/changelog/vercel-sandbox-supports-forking)) |
| Session limit | None | 45 min Hobby · 24 h Pro ([source](https://vercel.com/docs/sandbox/pricing)) |
| **Built for agents** |  |  |
| Coding agents installed | Claude Code, Codex, OpenCode | Claude Code, Codex, OpenCode, Pi ([source](https://vercel.com/docs/sandbox/cli-reference)) |
| SSH | Native, own port per machine | SSH-like CLI shell ([source](https://vercel.com/docs/sandbox/cli-reference)) |
| HTTPS URL per port | Yes, plus custom domains | Yes, up to 15 ports ([source](https://vercel.com/docs/sandbox/pricing)) |
| Raw TCP inbound | Yes, 3 ports per machine | Not published |
| Secrets kept out | Yes, swapped in at the proxy | Yes, credential brokering ([source](https://vercel.com/docs/sandbox/concepts/firewall)) |
| **Price** |  |  |
| vCPU-hour | $0.047, CPU used | $0.128 per active CPU-hour ([source](https://vercel.com/docs/sandbox/pricing)) |
| RAM GiB-hour | $0.014, memory in use | $0.0212 per GB-hour ([source](https://vercel.com/docs/sandbox/pricing)) |
| While asleep | Hibernated: disk only | Stopped: snapshot storage ([source](https://vercel.com/docs/sandbox/pricing)) |
| **Also worth knowing** |  |  |
| GPUs | No | Not published |
| Regions | Frankfurt (US waitlist) | 19 worldwide ([source](https://vercel.com/docs/sandbox/concepts/regions)) |
| SOC 2 | SOC 2 in progress | SOC 2 Type II ([source](https://vercel.com/security)) |
| SAML SSO | No | Enterprise, or Pro add-on ([source](https://vercel.com/docs/saml)) |
| Egress allowlist | Yes | Yes ([source](https://vercel.com/docs/sandbox/concepts/firewall)) |
| Self-host | Yes, free to 16 vCPUs | No |

## Where Vercel Sandbox is stronger

- **Regions.** 19 regions worldwide. boxd runs in Frankfurt only for now.
- **Compliance.** SOC 2 Type II, ISO 27001, and HIPAA on Enterprise.
- **Next to your Vercel app.** If your app is on Vercel, the sandbox is one SDK call away with the same account and billing.

## Questions

### Does a Vercel sandbox keep running processes?

No. Stopping saves the filesystem, and resuming starts a new session from it, so you start your services again. A boxd machine keeps its memory through standby and hibernation, so the processes are still there.

### Is Vercel Sandbox cheaper?

Usually not. Both bill CPU only while it works: Vercel at $0.128 per CPU-hour, boxd at $0.047. boxd's RAM bills on what's in use, and a sleeping boxd machine pays only for its disk.

### How long can a Vercel sandbox run?

45 minutes per session on Hobby and 24 hours on Pro; stopping and resuming resets the clock. A boxd machine has no session limit.

## How we measured

### Wake from hibernation

A small Python HTTP server on a default 2 vCPU machine, published on its HTTPS URL. Ten times: hibernate the machine, confirm it reports hibernated, then send one HTTPS request on a new connection from a client machine in the same datacenter. Median 156 ms until the app answered (104–213 ms); a warm request takes about 73 ms, so waking adds about 80 ms. The app's process ID was the same after every wake.

### New machine from a snapshot

A snapshot of that machine with the server running. Ten times: run `boxd new --from-snapshot`, then request the new machine's HTTPS URL until the app answers. Median 1.19 s from the create command to the app's first response (1.14–1.24 s). The first request succeeded every time; nothing was started after boot.

### CPU

The Node.js web tooling test from StarSling's open sandbox benchmark (Phoronix Test Suite 10.8.4, pts/node-web-tooling-1.0.1, Node 22.23.1, two passes per run), on a 4 vCPU machine. Three runs: 12.65, 12.86 and 12.19 runs/s. The other providers' numbers are from StarSling's own published leaderboard, which runs 4 vCPU / 8 GiB; boxd's 4 vCPU size has 16 GiB, which this test doesn't use.

### What these numbers don't include

Your own network distance. Every timing was taken from a client in the same Frankfurt datacenter; from the US, add your round trip on top. A larger app has more memory to bring back, so it takes longer than a small server.

## More comparisons

- [boxd vs E2B](https://boxd.sh/compare/e2b/index.md)
- [boxd vs Daytona](https://boxd.sh/compare/daytona/index.md)
- [boxd vs Modal](https://boxd.sh/compare/modal/index.md)
- [boxd vs Blaxel](https://boxd.sh/compare/blaxel/index.md)
- [boxd vs Cloudflare Sandbox](https://boxd.sh/compare/cloudflare-sandbox/index.md)
- [Moving off Runloop](https://boxd.sh/compare/runloop/index.md)
- [boxd vs exe.dev](https://boxd.sh/blog/boxd-vs-exe-dev/)
- [boxd vs sprites.dev](https://boxd.sh/blog/boxd-vs-sprites/)
- [All comparisons](https://boxd.sh/compare/index.md)
