boat vs Expo

Expo's EAS Build and Workflows compile and ship React Native apps on fresh Linux and macOS VMs that are thrown away after each job. boat gives AI agents a Linux VM that keeps its disk, runs Docker and coding agents, and stays up as long as the work takes.

Where boat stands out

A machine that keeps its work

A boat VM keeps its disk, takes a snapshot every minute and can run for days with no session cap on paid plans. An Expo job starts on a fresh VM, stops at 2 hours, and keeps only the cache keys and artifacts you save.

A full Linux VM you control

Every boat sandbox has root, systemd, Docker and /dev/kvm, plus SSH and HTTPS URLs on up to 50 ports. Expo workers run Expo's fixed images, with nested virtualization only on special workers for Android emulators and no way in from outside.

Coding agents built in

boat ships Claude Code, Codex, OpenCode and other agents inside each sandbox, and you drive them from outside with a prompt, steer and events API. Expo's agent support is a plugin, skills and an MCP server for agents running on your own laptop.

The companies and products

boat

boat.dev runs sandboxes for AI agents: each one is a full Linux VM with its own kernel.

You start a machine with one command or one API call, then SSH in, run Docker, open a desktop, or let a built-in agent (Claude Code, Codex, OpenCode and others) work in it. The disk stays between sessions, and a stopped sandbox costs nothing.

Expo

Expo makes the open-source Expo framework for React Native apps and EAS, a cloud service that builds, submits and updates those apps.

EAS Build compiles Android and iOS app binaries, and EAS Workflows runs CI/CD jobs such as builds, tests, store submissions and updates. Each build or job gets its own fresh VM: Linux on Google Cloud, macOS on Expo's own Mac mini hosts, and the VM is gone when the job ends. It is a mobile CI and release service for app teams, not a general sandbox, so this page compares the parts where the two overlap.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “3rd cheapest of 367” means 2 of the other 366 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadboat: price rankExpo: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory needs machines that keep their files and run for hours, while each Expo job starts from a clean VM and stops at 2 hours.
3rd cheapest of 367
$634 a month
358th of 367, with limits
$19,232 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
5th cheapest of 366
$657 a month
360th of 366, with limits
$39,394 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Neither is a perfect fit for short code bursts: Expo bills per build or per minute of CI, and boat's start limits queue very large bursts.
186th of 345, with limits
$2,000 a month
330th of 345, with limits
$3,824 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Expo runs your own team's app builds; it has no API for handing a machine to each of your users.
Cheapest of 361
$209 a month
345th of 361, with limits
$13,184 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
34th of 360, with limits
$2,000 a month
329th of 360, with limits
$54,224 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
10th cheapest of 364
$200 a month
359th of 364, with limits
$5,624 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
Expo is CI built for React Native apps; for general CI with Docker, services and long test suites, boat's VMs have no job timeout on paid plans.
4th cheapest of 377
$86 a month
204th of 377, with limits
$2,744 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
An Expo worker cannot be kept on or reached over SSH, so it cannot serve as a dev box; a boat VM can stay up all month.
18th cheapest of 368
$26 a month
356th of 368, with limits
$762 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Expo workers have no desktop or browser stream, and boat streams a 60fps desktop with Chromium for computer use.
6th cheapest of 369
$200 a month
352nd of 369, with limits
$5,624 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
7th cheapest of 367
$200 a month
356th of 367, with limits
$5,624 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
6th cheapest of 346
$90 a month
343rd of 346, with limits
$5,624 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
71st of 338, with limits
$1,800 a month
333rd of 338, with limits
$108 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
2nd cheapest of 360
$200 a month
343rd of 360, with limits
$2,924 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Can't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Only Expo fits here, and only for iOS builds and simulator jobs inside its pipeline; boat has no macOS machines.
Can't run it27th of 36, with limits
$1,474 a month

Key features

FeatureboatExpo
Kind of productGeneral Linux VM sandboxes for AI agents, driven by APIMobile app build and CI/CD service for Expo and React Native projects
IsolationEvery sandbox is a full VM with its own kernelEvery build or job gets its own dedicated VM, destroyed when it ends
Operating systemsLinux onlyLinux, plus macOS with Xcode for iOS builds and simulators
How long a machine runsNo session cap on paid plans; a VM can run all month45-minute build timeout on Free, 2 hours on paid plans
Files between runsPersistent disk with snapshots every minute; a stopped sandbox costs nothingFresh VM every job; only saved cache keys and build artifacts carry over
Docker and nested virtualizationDocker, root, systemd and /dev/kvm on every machineNested virtualization workers for Android emulators; running Docker inside a job is not documented
Getting insideSSH and a desktop stream on every machineNo SSH into cloud workers; to poke at a build you run it locally
Reaching the machineHTTPS URLs for up to 50 ports, token-protected; raw TCPWorkers make outbound calls only; web hosting is a separate EAS Hosting product
Custom imagesNamed snapshots of a set-up machine, reusable as templatesExpo-provided images picked by name; add tools with apt-get or brew hooks during each build
Coding agentsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events APIPlugin, skills and an MCP server for agents running on your own computer
Keeping keys out of the machineAI credentials proxy for model providers and any HTTPS API; real keys never enter the sandboxSecret environment variables delivered into the job and hidden in logs
App store release pipelineNone built in; you run your own toolsBuilds, App Store and Play Store submission, TestFlight and over-the-air updates
Desktop and computer use60fps desktop and Chromium, computer use and browser controlNone; workers are headless build machines
Data locationEU only (Germany, Finland, France), with EU data residency and zero data retentionMostly Google Cloud; data may be transferred to the United States
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.SOC 2
Every feature Battleships tracks (43)
FeatureboatExpo
Full VM (own kernel)YesYes
Docker insideYesNo
Nested virtualizationYesYes
RootYesNot published
SystemdYesNot published
Desktop GUIYesNo
BrowserYesNo
Computer-use APIYesNo
SSHYesNo
Persistent diskYesNo
Pause/resumeYesNo
Automatic snapshotsYesNo
Fork/cloneYesNo
Live fork (no pause)YesNo
Memory forkNoNo
Custom image (Docker or snapshot)YesNo
≥24 h sessionsYesNo
Idle auto-stopNoNo
Wake on requestNoNo
HTTPS preview URLsYesNo
Raw TCP inboundYesNot published
Public IPv4NoNo
Egress allowlistNoNo
Secret proxyYesNo
Secret proxy for any APIYesNo
Preinstalled agentsYesNo
Agent harness APIYesNo
MCP serverNoYes
GPUNoNo
WindowsNoNo
Arm64NoYes
Self-hostingNoNo
BYOCNoNo
Open sourceNoNo
Scoped API keysYesNot published
Spend limitsYesNo
Usage per sandbox (API)YesNo
Audit logsNoNot published
SSONoYes
SOC 2NoYes
HIPAANoNo
EU data residencyYesNo
Zero data retentionYesNot published

Performance

boat26.69 runs/s
ExpoNot measured

There is no comparable measurement for Expo: its workers were not in the public sandbox benchmark we use. boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB on dedicated AMD Ryzen 9 9950X (Zen 5) hosts in StarSling's run of 2026-09-29.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Expo has no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

Scenarioboat, a monthExpo, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$20 · $20/mo$19 · Starter · with limits
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$26 · $20/mo$762 · Starter · with limits
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$317 · $20/mo × 3 seats$1,074 · Production · with limits
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$200 · $100/mo × 2 seats$5,624 · Production + 5 extra concurrency · with limits
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$2,000 · $2000/mo · with limits$11,024 · Production + 5 extra concurrency · with limits

boat: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Expo: Expo charges a plan fee ($19 Starter, $199 Production) that includes build credit, then a flat price per build ($1 to $4 by platform and size) no matter how long it runs. Other Workflows jobs are billed per minute, from $0.018 a minute on Linux medium to $0.15 on macOS large, and extra concurrency is $50 each.

Limits in those scenarios

None of the five scenarios fit Expo, because every job stops at the 2-hour timeout and its VM is deleted, so an agent cannot keep working or keep its files. Expo also caps how many builds run at once per plan and sends bigger needs to sales, and it has no way to hand machines to your users. On boat, paid plans have no session cap; the limit that bites is starts per minute and per day, which queues the 1,000-job burst even on the $2,000 plan.

ScenarioboatExpo
One coding agent, workdaysNone that bite
  • Starter: sessions capped at 2 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
One agent that never stopsNone that bite
  • Starter: sessions capped at 2 h
  • missing persistent disk
  • different kind of product: CI runner
  • no persistent disk: files lost when it stops or sleeps
50 agents in parallelNone that bite
  • Production: max 15 concurrent
  • Production: sessions capped at 2 h
  • missing persistent disk, Docker inside
  • different kind of product: CI runner
Sandboxes for your usersNone that bite
  • Production + 5 extra concurrency: max 20 concurrent
  • different kind of product: CI runner
  • egress price not published
1,000 short jobs at once
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)
  • Production + 5 extra concurrency: max 20 concurrent
  • different kind of product: CI runner
  • egress price not published

Which one should you use?

Use Expo when

you build and ship React Native apps, above all iOS apps that need macOS and Xcode, and want builds, store submission and updates in one service.

  • macOS and iOS builds. Useful if you ship iOS apps: Expo builds them on Mac mini hosts with Xcode and runs iOS simulators in CI.
  • A full mobile release pipeline. Useful for React Native teams: Expo builds, signs, submits to both app stores and ships over-the-air updates from one config.

Use boat when

AI agents need a real Linux machine for hours or days: one that keeps its disk, runs Docker and Android emulators on /dev/kvm, serves apps on HTTPS and comes with coding agents built in.

  • A machine that keeps its work. An agent that installs tools, clones repos and iterates for hours loses all of it when an Expo job ends. Saving and restoring caches by hand on every run is the only workaround, and it still stops at 2 hours.
  • A full Linux VM you control. Agents need to start databases in Docker, run a dev server and let you open it in a browser. On Expo there is no inbound port and no SSH, so you can only read the job's logs after it runs.
  • Coding agents built in. To run an agent in Expo's cloud you would have to script it as a CI step, pass real API keys in as secrets, and accept the 2-hour stop. boat's credentials proxy keeps those keys out of the machine.

Questions people ask

Is boat cheaper than Expo?

They sell different things, and none of our five agent scenarios fit Expo because its jobs stop at 2 hours and lose their files. For one agent running all month, the estimate is $26 on boat against $762 on Expo Workflows minutes; for 50 agents in parallel, $317 against $1,074. For one agent on workdays both come to about $20, but Expo's version would restart every 2 hours.

Can I build iOS apps on boat?

No. boat runs Linux VMs only, and iOS builds need macOS and Xcode. Expo builds iOS apps on Mac mini hosts, so many teams use Expo for the build and a boat VM for the agent that writes and tests the code.

Can I run an AI coding agent on Expo EAS?

Expo's agent tools (a plugin, skills and an MCP server) are for agents running on your own computer. You could script an agent as a custom Workflows step, but it would start on a fresh VM and stop at the 2-hour timeout. boat ships coding agents inside each sandbox and lets you drive them from outside with an API.

Can boat run the Android emulator?

boat VMs have /dev/kvm, so the emulator can use hardware acceleration, and Docker, root and systemd are there too. Expo offers special nested virtualization workers for Android emulator jobs inside its workflows.

Is boat SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention. Expo says on its trust page that it has a SOC 2 Type 2 attestation.

Start a sandbox

Install the CLI, then run boat new.

7-day free trial

More comparisons