Compare · CI runners

Sandal vs Depot

Depot’s Docker build caching is the deepest in the market, on a bare-metal plus NVMe design built for that one problem. Sandal runs the same class of hardware for every job, prices it lower per minute, bills by the second, and puts sandboxes and mobile simulators on the same account.

$ / min · Linux 2 vCPU
0.004Depot0.003Sandal
$ / min · macOS
0.080Depot0.060Sandal
Billing granularity
MinuteDepotSecondSandal
Also on the account
SandboxesDepotSandboxes · simulatorsSandal
The honest split

Two good answers. Here is which one is yours.

Pick Depot if
  • Most of your CI minutes go to building and pushing container images.
  • Cache hit rate on Docker layers is the number that decides your bill.
  • You want Depot’s build API and Connect integration as the centre of the pipeline.
Pick Sandal if
  • Your CI is tests and builds across Linux, Windows and macOS, not primarily image builds.
  • You want per-second billing and a lower published rate on the same hardware class.
  • The same team needs agent sandboxes and iOS simulators from one vendor.

Many teams run both. runs-on is per job and a sandbox is per task; nothing here is all or nothing.

Side by side

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.

Depot compared with Sandal, August 2026
AreaDepotSandalWhy it matters
Runtime
HardwareBare metal with NVMe, designed around build caching.Dedicated cores on 4.5 GHz EPYC with local NVMe.Both leave shared hyperthreads behind.
CacheDocker layer cache that is the deepest in the market.Sticky disks: named volumes restored just in time, no cap.Image-build pipelines versus everything else.
Isolation
TenancyEphemeral runner per job.Single-tenant microVM per job, destroyed on exit.A fork PR cannot touch your release job.
Pricing
BillingPer minute.Per second; queue time free.Short jobs pay for seconds, not minutes.
Surfaces
Operating systemsLinux, Windows, macOS.Linux, Windows, macOS and native ARM.Parity on OS coverage.
Beyond CISandboxes and a build API.Sandboxes, iOS and Android simulators, Xcode builds, Windows and macOS machines.What else the account can run.
Sources · reviewed August 2026

Capabilities change and rates change. If something here is out of date, tell us and we will fix it the same week.

Price

Same shape. Two meters.

Published rates, August 2026. macOS on Apple silicon: Depot $0.080, Sandal $0.060 per minute. Depot bills by the minute; Sandal by the second.

DepotLinux · 2 vCPU
0.004$ / minute
SandalLinux · 2 vCPU · paused = $0
0.003$ / minute
Depot · rounded up · $0.044Sandal · per second · $0.023

Five real job lengths on the published 2 vCPU Linux rates. A 71-second job bills as two minutes on a per-minute meter; times thousands of jobs a month, that is the difference.

Migration

One label changes.

Sandal registers as a self-hosted runner, so GitHub keeps orchestrating. Every action, cache, secret and reusable workflow keeps working.

.github/workflows/ci.yml−1 +1one line to switch
test:
- runs-on: depot-ubuntu-24.04
+ runs-on: sandal-ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: pnpm install --frozen-lockfile
- run: pnpm test
  1. 01≈ 2 min

    Install the app

    Grant Actions and workflow read on the repos you want to move.

  2. 02≈ 5 min

    Swap the label

    npx sandal migrate rewrites runs-on and opens a PR. Keep depot/build-push-action jobs on Depot if the layer cache is the point.

  3. 03≈ 1 week

    Watch a week of jobs

    Compare wall-clock time and the two invoices, then decide per job.

Where Depot is ahead

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

    Container image builds.

    If most of your CI minutes go to building and pushing images, Depot’s layer cache decides the bill and it is the deepest in the market. Keep those jobs there.

Before you switch

Questions teams ask before moving off Depot.

Yes. runs-on is per job, so image builds can stay on Depot while tests and everything else move. Both register as self-hosted runners; GitHub orchestrates.

Get started

Run the same job twice.

Point one workload at Sandal and one at Depot. The numbers on this page are ours; the ones that matter are yours.

npm i @sandal/sdk