Sandal vs Vercel Sandbox
Vercel Sandbox runs untrusted code in Firecracker microVMs and fits naturally into a Vercel project, with OIDC that just works when the app is hosted there. Sandal is the provider-independent version of the same isolation: credentials that work from CI, local and cloud, a far lower published rate, and the other machines an agent needs behind one SDK.
- $ / hr · 4 vCPU 8 GiB
- 0.660Vercel Sandbox0.036Sandal
- Paused sandbox
- SnapshotVercel Sandbox$0Sandal
- Works outside Vercel
- TokenVercel SandboxAnywhereSandal
- Surfaces on one SDK
- LinuxVercel SandboxLinux · CI · mobileSandal
Two good answers. Here is which one is yours.
- Your app is deployed on Vercel and automatic OIDC beats managing another credential.
- You want sandbox observability and billing inside the Vercel project you already pay for.
- Ephemeral execution on Vercel-supported runtimes or OCI images is all you need.
- You need the same API to also give the agent a CI runner, a desktop, or an iOS simulator.
- Agents idle between turns and you refuse to pay wall-clock for a machine that is thinking.
- Untrusted code needs its own kernel, default-deny egress and a key that dies with the machine.
Many teams run both. runs-on is per job and a sandbox is per task; nothing here is all or nothing.
What each one actually ships.
Documented capability as of August 2026. Where the honest answer is a qualifier rather than yes or no, the qualifier is printed. Scroll sideways on a small screen.
| Area | Vercel Sandbox | Sandal | Why it matters |
|---|---|---|---|
| Runtime | |||
| State | Filesystem snapshots and persistent named sandboxes restore state across sessions. | Pause to $0 with memory intact, snapshots, and copy-on-write forks. | Restoring a snapshot is a new machine; resuming a pause is the same one. |
| Isolation | |||
| Runtime | Firecracker microVMs on Vercel infrastructure, from Amazon Linux or an OCI image. | Firecracker microVM with its own kernel; bring your own image or start from a template. | Same isolation lineage. The comparison is about everything around it. |
| Pricing | |||
| Billing | Per second while the sandbox runs, at the Vercel rate. | Per second while the machine runs; paused costs nothing. | Two per-second meters, one of them 18× the other for the same shape. |
| Surfaces | |||
| Platform scope | Closely integrated with the Vercel application platform. | A standalone runtime: Linux, Windows and macOS machines, CI runners, iOS and Android simulators, Xcode builds. | Coupling is a feature until you need a machine Vercel does not sell. |
| Developer experience | |||
| Authentication | Vercel OIDC, automatic for Vercel-hosted apps; a token elsewhere. | One API key that works from local agents, CI, desktop and cloud. | Agents run in a lot of places that are not a Vercel deployment. |
| SDKs | TypeScript. | TypeScript and Python, CLI, REST, MCP. | Python agent stacks need a client too. |
Capabilities change and rates change. If something here is out of date, tell us and we will fix it the same week.
Same shape. Two meters.
Published rates, August 2026, same instance shape. Vercel meters per second while the sandbox runs; Sandal bills per second while the sandbox runs and a paused sandbox costs nothing.
- Vercel Sandbox4 vCPU / 8 GiB
- 0.660$ / hour
- Sandal4 vCPU / 8 GiB · paused = $0
- 0.036$ / hour
One agent day on the published rates for the same shape: 5.8 hours of work in six bursts. Vercel snapshots and restores rather than exposing a pause verb; the model keeps the sandbox alive between turns.
Same shape, native SDK.
The lifecycle maps one to one, create, exec, files, stop, so the port is a small rewrite, not a re-architecture. Keep the vendor-specific glue on your side of the boundary.
- 01≈ 2 min
Install the SDK
npm install @sandal/sdk and set one API key. It works from CI, local and cloud alike.
- 02≈ 30 min
Port the lifecycle
create, exec, files and stop map one to one. Vercel OIDC and project bindings are replaced at the application boundary.
- 03≈ 1 afternoon
Run both, side by side
Same job on each vendor for a day; compare start time, exit codes and the bill.
What we would rather you read here than find later.
A comparison page where the vendor wins every row is a brochure. These are real, and we would rather you land on the right tool than land on us and leave in a month.
- 01
Inside a Vercel project.
If the app is hosted on Vercel, OIDC, observability and billing are already there. Nothing to configure, one invoice fewer.
Questions teams ask before moving off Vercel Sandbox.
Both run Firecracker microVMs with a dedicated kernel per sandbox. The differences are the control plane, authentication, billing, pause and fork semantics, and the other surfaces Sandal exposes.
The rest of the field in sandboxes.
- Sandal vsE2BFirecracker sandboxes, open infrastructure, the biggest template catalogCompare
- Sandal vsDaytonaComposable sandboxes, five SDKs, volumes and signed previewsCompare
- Sandal vsModalServerless functions, GPUs and gVisor sandboxes on one Python platformCompare
- Sandal vsCloudflare SandboxesContainer sandboxes driven from Workers and Durable ObjectsCompare
- Sandal vsascii.dev BoxPersistent KVM VMs at one fixed, very cheap shapeCompare
- Sandal vsrun.cloudFirecracker sandboxes plus mobile simulators, with compatibility adaptersCompare
Run the same job twice.
Point one workload at Sandal and one at Vercel Sandbox. The numbers on this page are ours; the ones that matter are yours.