BuildJet’s official notice says its GitHub Actions runners stopped running jobs on March 31, 2026. Old website prices are historical. Read the source ↗

CI and test infrastructure / BuildJet alternative

BuildJet alternative after shutdown

BuildJet for GitHub Actions has shut down. Its official notice says runner jobs ended on March 31, 2026, even though the old marketing site still displays rates. A useful replacement plan separates existing CI workflows from any new requirement for a returning agent computer.

Reviewed 2026-10-18 · Published by the Sandbox0 team

When BuildJet fits

BuildJet is no longer a currently purchasable hosted-runner choice. Follow the vendor’s migration notice for GitHub-hosted or other suitable runner options, preserving workflow architecture and cache behavior.

When to consider Sandbox0

Consider Sandbox0 when an agent needs an execution environment that persists across tasks and grows beyond the initial RootFS. Integrating it into CI requires your own orchestration; it is not a one-label replacement for a hosted GitHub Actions runner fleet.

Capabilities

BuildJet and Sandbox0: what persists?

Feature comparison with documentation and verification status
Environment and runtime lifetimeBuildJetNot established in this reviewSandbox0ttl and hard_ttl default to 0 (disabled). Configure idle pause and deletion policies for the same persistent sandbox identity; an idle running sandbox still accrues compute charges.Read documentation →
Persistent filesBuildJetThe historical runner contract explicitly wiped the VM after every job; this is a retired service.View evidence ↗Sandbox0The writable RootFS survives successful checkpoints, including software, system configuration, dependencies, and user data.Read documentation →
Whole RootFSBuildJetHistorical job VMs were wiped between jobs; external caches are separate.View evidence ↗Sandbox0Persistence extends beyond /workspace to paths such as /usr/local, /etc, and /home. Runtime tmpfs and virtual filesystems are excluded.Read documentation →
Release compute, keep stateBuildJetNo active service remains; the shutdown notice does not define a current pause/resume offer.View evidence ↗Sandbox0Pause compute between tasks; resume on available capacity. Default resume starts fresh processes from the saved filesystem.Read documentation →
Memory and process stateBuildJetNo current process-memory product is offered by the ended service.View evidence ↗Sandbox0Experimental memory checkpoints can preserve compatible process state. Use memory: true on both pause and resume on a compatible deployment. A filesystem checkpoint alone does not preserve running processes.Read documentation →

Online RootFS growth

On growth-enabled images, Sandbox0 automatically expands the writable RootFS as free space runs low, within a configured sparse logical ceiling up to 64 TiB. Agent processes keep running. Growth is enabled in the qualified Cloud region; confirm activation for other regions. Existing images and snapshots retain their captured storage geometry. The ceiling is logical capacity, not preallocated host disk.

The historical BuildJet job VM was discarded after a job. Growing a durable agent RootFS across tasks is a different lifecycle requirement; job caches should not be represented as the complete machine state.

Files while compute is paused

Sandbox0's Files API reads persistent files without resuming compute. Filesystem-only pauses also permit edits; retained-memory pauses are read-only and reject mutations with 409. SSH, SFTP, file watching, and runtime-only mounts require running compute.

There is no current BuildJet service against which to promise paused-file behavior. Export or rebuild from the repositories, artifacts and caches you still control; do not assume data can still be recovered from retired job machines.

See paused file operations →

The shutdown notice takes precedence over old prices

The February 6, 2026 announcement stopped new signups immediately, made concurrency subscriptions free and continued usage billing only until March 31. Jobs stopped on that final date. The surviving website’s per-minute table is historical marketing, not a current offer or a basis for quoting migration savings.

Runner and cache migration are separate changes

The notice illustrates replacing BuildJet runner labels with GitHub-hosted x64 or ARM labels. It also describes BuildJet Cache as interoperable with actions/cache and shows switching the cache action. Validate runner architecture, dependencies and cache keys rather than treating a passing label edit as proof of a complete pipeline migration.

A clean CI job and a returning agent have different lifecycles

The legacy homepage describes an isolated VM wiped after each job. That was useful job isolation. A long-running agent may instead need accumulated system packages, configuration and files across tasks; those are separate requirements from dependency caches and stored CI artifacts.

Pricing

Compare billing models, then price your workload

CPU allocation, memory, billing minimums, disk, plan fees, and supported workload differ. These meters are not equal-performance machine quotes. Confirm region, resource units, and included allowances before estimating a total.

BuildJet

Pricing reviewed 2026-10-18

Current hosted runners
Unavailable after March 31, 2026
BuildJet stopped running jobs; old per-minute tables are not current prices.
Rate source ↗
Shutdown-period concurrency fee
Waived from February 6, 2026
Historical transition only; usage billing continued until the final service date.
Rate source ↗

This is a replacement/migration comparison for an ended service. No current BuildJet hourly price or numerical savings estimate is asserted. Price the replacement runner, any GitHub platform charges, caches and artifacts under their effective terms. Sandbox0 runtime compute/storage is a separate resource layer.

Check current BuildJet pricing ↗

Sandbox0

$0.015/GiB-hour compute (billed by the second at approximately $0.000004167/GiB-second), plus $0.02/GiB-month of retained incremental RootFS and memory checkpoint data. Shared base images and platform recovery retention are excluded; paused sandboxes accrue storage charges only.

Compute / GiB-hour
$0.015
Retained data / GiB-month
$0.02
Paused compute
$0.00

A 4 GiB agent, 100 running hours

$6.00 compute

4 GiB × 100 hours, billed by the second. Keeping 20 GiB of billable incremental data for a full billing month adds $0.40. CPU is derived from memory by the platform; choose a tier that fits your workload.

Understand storage billing →

Before migrating from BuildJet

  1. Migrate remaining runner labels and cache actions using the vendor notice; check x64/ARM architecture, workflow permissions and retained artifacts.
  2. For returning-agent workloads, define a Sandbox0 template and an explicit CI/agent orchestration layer rather than assuming runner-label compatibility.
  3. Test repeated tasks, installed system tools, growth, paused files, credentials and the full replacement-runner plus runtime bill.

Common questions

Is Sandbox0 a drop-in BuildJet replacement?

Evaluate API compatibility and product scope. These products serve different core workflows, so a change may require a different architecture.

Does keeping files also keep a running agent?

Filesystem state and volatile process state are separate. Sandbox0 requires explicit compatible memory checkpoints to preserve running processes; its default filesystem resume starts fresh processes.

Sources and review scope

The Boat team's Battleships directory is the discovery source. References below describe the product and plan discussed on this page. Check current availability, regional terms and billing units before migrating. Where the cited material does not establish a capability or price, the comparison identifies that uncertainty.

Related comparisons