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.
- Isolation
- Full VM per sandbox, own kernel
- Regions
- EU: Germany, Finland, France
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 workload | boat: price rank | Expo: 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 it | Can'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 it | 27th of 36, with limits $1,474 a month |
Key features
| Feature | boat | Expo |
|---|---|---|
| Kind of product | General Linux VM sandboxes for AI agents, driven by API | Mobile app build and CI/CD service for Expo and React Native projects |
| Isolation | Every sandbox is a full VM with its own kernel | Every build or job gets its own dedicated VM, destroyed when it ends |
| Operating systems | Linux only | Linux, plus macOS with Xcode for iOS builds and simulators |
| How long a machine runs | No session cap on paid plans; a VM can run all month | 45-minute build timeout on Free, 2 hours on paid plans |
| Files between runs | Persistent disk with snapshots every minute; a stopped sandbox costs nothing | Fresh VM every job; only saved cache keys and build artifacts carry over |
| Docker and nested virtualization | Docker, root, systemd and /dev/kvm on every machine | Nested virtualization workers for Android emulators; running Docker inside a job is not documented |
| Getting inside | SSH and a desktop stream on every machine | No SSH into cloud workers; to poke at a build you run it locally |
| Reaching the machine | HTTPS URLs for up to 50 ports, token-protected; raw TCP | Workers make outbound calls only; web hosting is a separate EAS Hosting product |
| Custom images | Named snapshots of a set-up machine, reusable as templates | Expo-provided images picked by name; add tools with apt-get or brew hooks during each build |
| Coding agents | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API | Plugin, skills and an MCP server for agents running on your own computer |
| Keeping keys out of the machine | AI credentials proxy for model providers and any HTTPS API; real keys never enter the sandbox | Secret environment variables delivered into the job and hidden in logs |
| App store release pipeline | None built in; you run your own tools | Builds, App Store and Play Store submission, TestFlight and over-the-air updates |
| Desktop and computer use | 60fps desktop and Chromium, computer use and browser control | None; workers are headless build machines |
| Data location | EU only (Germany, Finland, France), with EU data residency and zero data retention | Mostly Google Cloud; data may be transferred to the United States |
| Compliance and transparency | SOC 2 is in progress. We're open about where we stand: live status and data retention policy. | SOC 2 |
Every feature Battleships tracks (43)
| Feature | boat | Expo |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | No |
| Nested virtualization | Yes | Yes |
| Root | Yes | Not published |
| Systemd | Yes | Not published |
| Desktop GUI | Yes | No |
| Browser | Yes | No |
| Computer-use API | Yes | No |
| SSH | Yes | No |
| Persistent disk | Yes | No |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | No |
| Live fork (no pause) | Yes | No |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | No |
| ≥24 h sessions | Yes | No |
| Idle auto-stop | No | No |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | No |
| Raw TCP inbound | Yes | Not published |
| Public IPv4 | No | No |
| Egress allowlist | No | No |
| Secret proxy | Yes | No |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | Yes |
| GPU | No | No |
| Windows | No | No |
| Arm64 | No | Yes |
| Self-hosting | No | No |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | No |
| Usage per sandbox (API) | Yes | No |
| Audit logs | No | Not published |
| SSO | No | Yes |
| SOC 2 | No | Yes |
| HIPAA | No | No |
| EU data residency | Yes | No |
| Zero data retention | Yes | Not published |
Performance
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.
| Scenario | boat, a month | Expo, 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.
| Scenario | boat | Expo |
|---|---|---|
| One coding agent, workdays | None that bite |
|
| One agent that never stops | None that bite |
|
| 50 agents in parallel | None that bite |
|
| Sandboxes for your users | None that bite |
|
| 1,000 short jobs at once |
|
|
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