boat vs UpCloud
An UpCloud Cloud Server is a plain VM that you set up, secure and keep running yourself. boat gives an agent a full VM too, but with snapshots every minute, stops that cost nothing, fork of a running machine, HTTPS ports, a desktop and coding agents already built in.
Where boat stands out
Stops that keep the disk, and fork while running
boat saves a sandbox's disk every minute and when it stops, and a stopped sandbox costs nothing. You can fork a running sandbox in one call. On UpCloud, Starter and Premium servers keep billing while shut down, and making an image to copy a server needs the server shut down first.
Coding agents and a desktop built in
Every boat sandbox has Claude Code, Codex, OpenCode and other agents ready, and you drive them from outside with a prompt, steer and events API. It also streams a 60fps desktop with Chromium for computer use. The credentials proxy keeps real AI keys out of the machine and can switch to another account when one runs out of credits.
HTTPS on up to 50 ports, no setup
Each boat sandbox can serve up to 50 ports on HTTPS URLs, protected by a token, plus raw TCP. An UpCloud server has a public IP with any port open to it, but HTTPS means running your own proxy and certificates or adding a Managed Load Balancer.
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
UpCloud
UpCloud is a European cloud provider that rents cloud servers, storage and networking by the hour.
A Cloud Server is a Linux or Windows VM you pick from fixed plans (Starter, Premium, Cloud Native and others), with block storage, a public IPv4 and an L3 firewall. You install and run your own software on it, next to UpCloud products like managed databases, Kubernetes, load balancers, object storage and GPU servers. It is general infrastructure, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine.
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 | UpCloud: price rank |
|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both give a full Linux VM with root and Docker, but an UpCloud server starts empty and a Starter or Premium plan keeps billing when shut down, while boat comes with agents, snapshots and free stops. | 3rd cheapest of 367 $634 a month | 78th of 367, with limits $645 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB An UpCloud server can run an assistant around the clock, but you build the agent setup, the HTTPS endpoint and the backups yourself; boat has them built in. | 5th cheapest of 366 $657 a month | 117th of 366, with limits $700 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Both are a compromise for one-minute runs: UpCloud bills each server for at least an hour, and boat's start limits queue big bursts. | 186th of 345, with limits $2,000 a month | 161st of 345, with limits $700 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month UpCloud does not publish how many servers a full account can run at once, so 300 user sandboxes need a quota you confirm with them first; boat allows 100 to 2,000 by plan. | Cheapest of 361 $209 a month | 74th of 361, with limits $639 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 | 164th of 360, with limits $14,000 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 | 124th of 364, with limits $542 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month Both run Docker builds on a full VM; on UpCloud each job pays at least a full hour, and you run the runner software and the clean-up yourself. | 4th cheapest of 377 $86 a month | 96th cheapest of 377 $896 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Both fit a 24/7 dev box well, at $25 a month on UpCloud against $26 on boat: an UpCloud Starter server is a classic always-on machine, and a boat machine keeps its disk with snapshots every minute. | 18th cheapest of 368 $26 a month | 16th cheapest of 368 $25 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month boat streams a 60fps desktop with Chromium and computer use; an UpCloud server gives you a VNC console, and you install the desktop, the browser and the control loop yourself. | 6th cheapest of 369 $200 a month | 211th of 369, with limits $723 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 | 271st of 367, with limits $633 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 | 158th of 346, with limits $63 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 | 46th of 338, with limits $1,254 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 | 147th of 360, with limits $107 a month |
| GPU eval jobs 10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month Only UpCloud fits: it rents Nvidia GPU Servers in Helsinki, and boat has no GPUs. | Can't run it | 10th cheapest of 98 $952 a month |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it |
Key features
| Feature | boat | UpCloud |
|---|---|---|
| What you get | A sandbox API for agents, on full VMs | A general cloud server you set up and run yourself |
| Isolation | Every sandbox is a full VM with its own kernel | Every Cloud Server is a full VM with its own kernel |
| CPU | Dedicated AMD Ryzen 9 9950X (Zen 5) hosts; 26.69 runs/s at 4 vCPU / 8 GB | AMD EPYC 2nd to 5th generation, newest models on Premium and Cloud Native; no comparable measurement |
| Docker and nested virtualization | Docker, root, systemd and /dev/kvm on every machine, documented | Root and Docker on Linux templates; nested virtualization is not documented |
| Stopping | A stopped sandbox costs nothing and keeps its disk | Starter and Premium bill in full while shut down; Cloud Native stops billing compute, but storage and IPs keep billing |
| Snapshots | Automatic snapshots every minute and on stop | On-demand disk backups, plus paid daily or weekly scheduled backups |
| Fork | Fork a running sandbox in one call (disk, no memory) | Shut the server down, make a custom image, then deploy new servers from it |
| Reaching the machine | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP | Public IPv4 on any port; HTTPS needs your own certificates or a Managed Load Balancer |
| Desktop and computer use | 60fps desktop and Chromium, computer use and browser control, embeddable stream | A VNC or web console for admin; no desktop, browser or computer-use API |
| Coding agents | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API | None; you install and drive agents yourself, for example over SSH |
| Keeping keys out of the machine | AI credentials proxy for model providers and any HTTPS API you register; switch a credential to another account when credits run out | No credentials proxy; secrets live on the server |
| Outbound rules | Open internet on every plan; no provider-side allowlist | Free L3 firewall with inbound and outbound rules by IP, protocol and port |
| GPUs and Windows | No GPUs; no Windows guests (Wine for Windows apps) | Nvidia GPU Servers in Helsinki; Windows Server templates |
| Regions | EU only: Germany, Finland, France | 15 locations in Europe, the US, Singapore and Sydney |
| Compliance and transparency | SOC 2 is in progress. We're open about where we stand: live status and data retention policy. | No SOC 2 report published |
Every feature Battleships tracks (43)
| Feature | boat | UpCloud |
|---|---|---|
| Full VM (own kernel) | Yes | Yes |
| Docker inside | Yes | Yes |
| Nested virtualization | Yes | Not published |
| Root | Yes | Yes |
| Systemd | Yes | Yes |
| Desktop GUI | Yes | No |
| Browser | Yes | No |
| Computer-use API | Yes | No |
| SSH | Yes | Yes |
| Persistent disk | Yes | Yes |
| Pause/resume | Yes | No |
| Automatic snapshots | Yes | No |
| Fork/clone | Yes | Yes |
| Live fork (no pause) | Yes | No |
| Memory fork | No | No |
| Custom image (Docker or snapshot) | Yes | Yes |
| ≥24 h sessions | Yes | Yes |
| Idle auto-stop | No | No |
| Wake on request | No | No |
| HTTPS preview URLs | Yes | No |
| Raw TCP inbound | Yes | Yes |
| Public IPv4 | No | Yes |
| Egress allowlist | No | Yes |
| Secret proxy | Yes | No |
| Secret proxy for any API | Yes | No |
| Preinstalled agents | Yes | No |
| Agent harness API | Yes | No |
| MCP server | No | No |
| GPU | No | Yes |
| Windows | No | Yes |
| Arm64 | No | No |
| Self-hosting | No | No |
| BYOC | No | No |
| Open source | No | No |
| Scoped API keys | Yes | Not published |
| Spend limits | Yes | Yes |
| Usage per sandbox (API) | Yes | Yes |
| Audit logs | No | Yes |
| SSO | No | Yes |
| SOC 2 | No | No |
| HIPAA | No | No |
| EU data residency | Yes | Yes |
| Zero data retention | Yes | Not published |
Performance
There is no comparable measurement for UpCloud: its Cloud Servers were not part of the public StarSling benchmark run where boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. UpCloud uses several AMD EPYC generations and keeps the newest for Premium and Cloud Native plans, so results would depend on the plan you pick.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. UpCloud 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 | UpCloud, 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 | $7 · Usage account |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $26 · $20/mo | $25 · Usage account |
| 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 | $315 · Usage account |
| 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 | $633 · Usage account · 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 | $4,219 · Usage account · 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.
UpCloud: Each plan has a fixed monthly price, billed by the hour from a prepaid balance and capped at 672 hours a month, so a short job still pays a full hour. Starter and Premium include a disk and an IPv4 and bill while shut down, so the cheap workday price assumes you delete the server each night; Cloud Native stops billing compute when off but bills storage and IPs on top.
Limits in those scenarios
UpCloud does not publish how many servers a full account can run at once, and trial accounts get small quotas with no GPUs or Windows. That is why 300 sandboxes for your users and 1,000 short jobs at once are marked not confirmed: you would ask UpCloud for the quota first. Hourly billing also bites the burst, since each one-minute job pays a full hour. On boat the limit is a sandbox count (100 to 2,000 by plan) plus starts per minute, so the 1,000-job burst gets queued and needs more starts per day than the $2,000 plan allows.
| Scenario | boat | UpCloud |
|---|---|---|
| One coding agent, workdays | None that bite | None that bite |
| One agent that never stops | None that bite | 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 UpCloud when
you need GPUs, Windows servers, regions outside the EU, or a long-lived server that sits next to managed databases, Kubernetes and firewall rules in one cloud.
- GPUs in Helsinki. Useful if your agents train or serve models: UpCloud rents Nvidia GPU Servers from L4 to B200, on demand or as spot.
- Regions around the world. Useful if your users are outside Europe: UpCloud runs servers in the US, Singapore and Sydney as well as 10 European locations.
- A whole cloud around the server. Useful if the agent's machine must run Windows, or sit next to managed databases, Kubernetes and firewall rules in one account.
Use boat when
you want each agent on its own full VM that is ready to work: coding agents, a desktop, HTTPS ports and minute-by-minute snapshots built in, fork while running, and stops that cost nothing.
- Stops that keep the disk, and fork while running. Agents sit idle between tasks. On UpCloud you either pay for the idle server or delete it and lose its disk, and copying a busy agent's machine means stopping its work first.
- Coding agents and a desktop built in. An UpCloud server starts as an empty OS template, so you install, update and supervise each agent, desktop and key yourself, and the agent can read any key you put on it.
- HTTPS on up to 50 ports, no setup. An agent that starts a dev server wants to share a working link right away. On UpCloud that link is a bare IP with no TLS and no access token until you set them up for each server.
Questions people ask
Is boat cheaper than UpCloud?
Not for plain servers. One coding agent on workdays comes to $7 a month on UpCloud against $20 on boat, if you delete the UpCloud server every night. One agent that never stops is about even at $26 on boat against $25 on UpCloud, and 50 agents in parallel come to $317 on boat against $315 on UpCloud. For 300 user sandboxes, boat comes to $200 a month against $633 on UpCloud, where the quota is also not confirmed.
Do I pay for an UpCloud server that is shut down?
On Starter and Premium plans, yes: they bill per hour whether the server is on or off, until you delete it. Cloud Native plans stop billing compute when off, but storage and IPs keep billing. On boat, a stopped sandbox costs nothing and keeps its disk.
Can I run Docker and nested VMs on UpCloud?
Docker works, since a Cloud Server is a full VM with root. UpCloud's docs do not mention nested virtualization, so you would need to test it on your plan. On boat, Docker, systemd and /dev/kvm are documented on every machine.
Does UpCloud have an agent sandbox product?
No. UpCloud sells general cloud servers, storage, networking and managed services, with an API, CLI and Terraform provider. You install agents yourself and drive them over SSH. boat is built for agents, with coding agents, a desktop and a credentials proxy in every sandbox.
Where does my data run?
boat runs only in the EU (Germany, Finland and France), with EU data residency and a zero data retention option. UpCloud has 15 locations, 10 of them in Europe, plus the US, Singapore and Sydney.
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.
Start a sandbox
Install the CLI, then run boat new.
7-day free trial