Railway vs Unikraft Cloud
Railway is an app platform that added sandbox VMs you create, use and destroy next to your apps and databases. Unikraft Cloud turns a Dockerfile into a small microVM that boots in milliseconds, sleeps when traffic stops and wakes on the next request.
The companies and products
Railway
Railway is a cloud platform for deploying web apps, servers and databases, which now also sells sandboxes and cloud agents.
Railway's main product is app hosting: you deploy services and databases as containers on its own hardware. In 2026 it added Sandboxes, isolated Linux VMs you create from the CLI or a TypeScript SDK, run commands in and destroy, and Cloud Agents, a personal VM for running a coding agent, in early access. It suits teams already hosting on Railway who want throwaway machines next to their apps.
Unikraft Cloud
Unikraft Cloud is a microVM cloud from Unikraft Inc. that runs any Dockerfile-based workload as a minimal Linux microVM with millisecond cold starts and scale-to-zero.
Your Dockerfile becomes the VM image at build time, and each instance runs on a heavily customized Firecracker VMM, so it boots in milliseconds and can go into standby when no traffic arrives. It is a general compute platform built for dense, bursty work such as HTTP services, headless browsers and agent fleets, sold as flat self-serve plans plus Enterprise dedicated hosts, on-prem and bring your own cloud. It is not a dev machine you log into: instances are reached through services, the CLI and a sandbox plugin for commands and files.
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. “16th cheapest of 366” means 15 of the other 365 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 | Railway: price rank | Unikraft Cloud: price rank | boat: 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 work and run Docker; Railway sandboxes are destroyed when idle and Unikraft bakes everything into the image up front. | 51st of 367, with limits $342 a month | Can't run it | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB Railway fits an always-on assistant if you set the idle timeout to 0; Unikraft's Team pool has 8 GiB of memory shared by every running instance, so it has no fit here. | 16th cheapest of 366 $3,977 a month | Can't run it | 5th cheapest of 366 $657 a month |
| Code interpreter bursts 100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month Railway bills short code runs for CPU used and destroys the sandbox after; Unikraft is built for this shape too, but self-serve plans cap you at 24 running instances. | 36th cheapest of 345 $413 a month | Can't run it | 186th of 345, with limits $2,000 a month |
| Sandboxes for your users 300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month Railway allows 100 sandboxes per environment on Pro, and Unikraft Pro holds only 24 running instances, so hundreds of active users need more environments or an Enterprise contract. | 42nd of 361, with limits $290 a month | Can't run it | Cheapest of 361 $209 a month |
| RL rollouts 1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month | 78th of 360, with limits $4,450 a month | Can't run it | 34th of 360, with limits $2,000 a month |
| Agent evals 250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month Railway can fork a running sandbox and boot many from one checkpoint, while Unikraft's self-serve pools are too small for wide eval runs. | 108th of 364, with limits $364 a month | Can't run it | 10th cheapest of 364 $200 a month |
| CI runners 40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month CI jobs that build images need Docker, which Railway's sandbox docs do not mention and Unikraft documents no runtime for; boat has Docker on every machine. | 113th cheapest of 377 $1,210 a month | Can't run it | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Only this use case has a fit on both: Unikraft's $39 Team pool counts as a compromise, Railway fits at about $89 a month, and boat at $26. | 66th cheapest of 368 $89 a month | 219th of 368, with limits $39 a month | 18th cheapest of 368 $26 a month |
| Computer-use agents 50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month Both are headless with no desktop to stream, so computer-use agents are at best a compromise on Railway and have no fit on Unikraft; boat streams a 60fps desktop. | 77th of 369, with limits $103 a month | Can't run it | 6th cheapest of 369 $200 a month |
| Browser-use agents 50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month | 53rd of 367, with limits $93 a month | Can't run it | 7th cheapest of 367 $200 a month |
| Scraping & bots (startup scale) 50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month | 60th cheapest of 346 $570 a month | Can't run it | 6th cheapest of 346 $90 a month |
| Mass scraping & bots (undetectable) 1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month | 109th of 338, with limits $2,988 a month | Can't run it | 71st of 338, with limits $1,800 a month |
| Parallel red teaming 200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month | 43rd of 360, with limits $574 a month | Can't run it | 2nd cheapest of 360 $200 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 | Can't run it |
| 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 | Can't run it |
Key features
| Feature | Railway | Unikraft Cloud | boat |
|---|---|---|---|
| Isolation | Sandboxes are isolated Linux VMs; app services are containers | Minimal Linux microVM on a customized Firecracker VMM | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Machine size | 8 vCPU / 8 GB on Hobby, 32 vCPU / 32 GB on Pro, per sandbox | Plan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB | 4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox from the $100 plan |
| Running at once | 50 sandboxes per environment on Hobby, 100 on Pro | 2, 8 or 24 running instances by plan; standby instances do not count | 100 to 2,000 sandboxes by plan |
| When it goes idle | Destroyed after the idle timeout (30 minutes by default); files survive only in checkpoints you take | Standby after a 1 second idle cooldown; stateful mode snapshots memory and resumes with warm caches | You stop it; the disk is saved every minute and on stop, and a stopped sandbox costs nothing |
| Wake on request | No; a destroyed sandbox is gone, and you boot a new one from a checkpoint | Yes; incoming traffic wakes a sleeping instance in milliseconds | No; a stopped sandbox is started by API |
| Docker and systemd inside | Root shell on Ubuntu; the sandbox docs do not mention Docker | Runs as root; the Dockerfile becomes the VM image, with no container runtime inside documented | Docker, systemd and root, like any Ubuntu machine |
| Nested virtualization | Not mentioned in the sandbox docs | Per-instance flag and permission, Enterprise only | /dev/kvm on every plan, for Android emulators and VMs |
| SSH | Yes, with port forwarding | Not yet; commands and files go through the sandbox plugin and CLI | Yes, into every sandbox |
| Fork and checkpoints | Fork a running sandbox's filesystem; named disk checkpoints (no memory) | Checkpoint memory and volumes of a running microVM with a pause of a few milliseconds | Fork a running sandbox with its disk; snapshots every minute (disk only) |
| Inbound access | Up to 10 public HTTPS domains, set only at creation | Services on its load balancer: HTTP on 80, HTTPS on 443, TLS-wrapped TCP on other ports | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6 |
| Coding agents | Claude Code, Codex, OpenCode and Pi preinstalled; you run them headless through exec | None preinstalled; you bring the agent in your own image | Seven agents preinstalled, with a prompt, steer and events API |
| Keeping API keys out of the sandbox | Secrets go into the sandbox as environment variables | Network shield can inject secrets into traffic, Enterprise only, limited access | Credentials proxy for model providers and any HTTPS API on every plan; switch accounts when credits run out |
| Desktop and computer use | Headless: terminal, exec and SSH only | None built in; you can run your own headless browser from a Dockerfile | 60fps desktop with Chromium, computer use and browser control |
| Apps and databases nearby | Postgres, Redis and services in the same project; a sandbox can join their private network | General compute for HTTP services and headless browsers; no hosted databases listed | No hosted databases or app services; host your own inside a sandbox |
| Regions | California, Virginia, Amsterdam and Singapore | Dallas, Frankfurt, San Francisco, Singapore and Washington DC, more on request | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Railway | Unikraft Cloud | boat |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Not published | No | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Not published | Not published | Yes |
| Desktop GUI | No | No | Yes |
| Browser | Yes | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | Yes | No | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | No | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | No | Yes | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | Not published | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | No | Yes | No |
| Secret proxy | No | Yes | Yes |
| Secret proxy for any API | No | Yes | Yes |
| Preinstalled agents | Yes | No | Yes |
| Agent harness API | Yes | No | Yes |
| MCP server | Yes | No | No |
| GPU | No | Yes | No |
| Windows | No | No | No |
| Arm64 | No | Yes | No |
| Self-hosting | No | Yes | No |
| BYOC | Yes | Yes | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Yes | Not published | Yes |
| Usage per sandbox (API) | No | No | Yes |
| Audit logs | Yes | Yes | No |
| SSO | Yes | No | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
There is no comparable measurement for Railway or Unikraft Cloud: neither is in the StarSling hpc-sandbox-benchmarks run that measured boat at 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB. Unikraft states cold starts under 10 ms, which is its own figure and measures start time, not CPU speed.
Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Railway and Unikraft Cloud have 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 | Railway, a month | Unikraft Cloud, a month | boat, 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 | $16 · Hobby · with limits | $39 · Hobby | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $70 · Hobby · with limits | $39 · Hobby | $26 · $20/mo |
| 50 agents in parallel 50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside | $739 · Hobby · with limits | Can't run it | $317 · $20/mo × 3 seats |
| Sandboxes for your users 2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once | $223 · Pro · with limits | Can't run it | $200 · $100/mo × 2 seats |
| 1,000 short jobs at once 2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month | $781 · Pro · with limits | Can't run it | $2,000 · $2000/mo · with limits |
Railway: Railway bills sandboxes per second at $50 per vCPU-month on CPU used and $50 per GB-month on memory in use, plus $0.05 per GB out, with the Hobby ($5) and Pro ($20) fees counting toward usage. Memory keeps billing while a sandbox waits, and sandbox disk has no published price, so our bills leave it out.
Unikraft Cloud: Unikraft charges a flat monthly fee for a pool of running capacity: free for 2 vCPU / 4 GiB, $39 for 8 vCPU / 8 GiB, $199 for 24 vCPU / 32 GiB, and sleeping instances do not count. It publishes no per-hour or egress rate, so anything bigger is an Enterprise quote.
Limits in those scenarios
Railway is marked not a clean fit in every scenario because it is an app platform first and does not price sandbox disk, and its cap is 100 sandboxes per environment on Pro, so 300 user sandboxes or 1,000 jobs at once need several environments. Unikraft fits one agent on its $39 Team pool, but that pool is 8 vCPU and 8 GiB in total, so 50 agents, user sandboxes and the burst need Enterprise. boat fits all but the 1,000-job burst, where its $2,000 plan queues starts above 90 a minute.
| Scenario | Railway | Unikraft Cloud | boat |
|---|---|---|---|
| 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 Railway when
your app and databases already live on Railway and you want short-lived sandbox VMs on the same private network, bigger single machines, or 100 at once without a sales call.
- Sandboxes next to your apps. Useful if your app already runs on Railway: sandboxes can join the same private network as your Postgres and services.
- Bigger single sandboxes, more of them. A Pro sandbox can reach 32 vCPU / 32 GB, and 100 can run per environment without a sales call.
- Coding agents in the image. Claude Code, Codex, OpenCode and Pi come preinstalled, so you can run an agent headless with one exec call.
Use Unikraft Cloud when
you run many small services or headless browsers that sleep most of the time and must wake in milliseconds, or want GPUs, on-prem or your own cloud under Enterprise.
- Millisecond starts and scale-to-zero. Best for many small services that sleep most of the time and must answer the next request in milliseconds.
- Memory checkpoints. Stateful standby and checkpoints keep memory, so an instance comes back with warm caches instead of booting again.
- GPUs and your own hardware. Enterprise customers can get NVIDIA GPUs, arm64 hosts, dedicated hosts, on-prem or their own cloud.
Where boat fits
Both Railway and Unikraft Cloud are built around short-lived or sleeping workloads. If what you are really running is agents that work for hours, install tools, run Docker and need a screen, look at boat: every sandbox is a full VM that keeps its disk, with a desktop and coding agents you drive from outside.
A whole machine with Docker and KVM
Agents run docker compose and boot emulators. Railway's sandbox docs do not mention Docker or /dev/kvm, and Unikraft documents no container runtime and keeps nested virtualization for Enterprise. boat has Docker, systemd and /dev/kvm on every plan.
Work that is kept, not lost
A Railway sandbox is destroyed after 30 idle minutes unless you set the timeout to 0, and then memory bills until you destroy it. Unikraft keeps state but has no SSH. boat saves the disk every minute and a stopped sandbox costs nothing.
Agents, keys and a desktop built in
On Railway agent keys sit inside the VM as environment variables; Unikraft's secret injection is Enterprise only. Neither has a desktop. boat's credentials proxy keeps keys outside on every plan, and a 60fps desktop lets agents use a real browser.
Use boat when your agents need a real machine for hours or days: Docker and /dev/kvm, a disk that is kept, a desktop, and coding agents you drive from outside while their keys stay outside. Compare it one to one: boat vs Railway and boat vs Unikraft Cloud.
Questions people ask
Is Railway cheaper than Unikraft Cloud?
For one coding agent on workdays, Railway comes to $16 against $39 for Unikraft's Team pool, though Railway's number leaves out disk. For one agent running all month, Unikraft's flat $39 beats Railway's $70. For 50 agents or hundreds of user sandboxes, no self-serve Unikraft plan is big enough, so it is an Enterprise quote.
Which is faster, Railway or Unikraft Cloud?
Neither has a CPU result in the benchmark we use, so we cannot say which runs code faster. Unikraft starts faster: its microVMs cold boot in milliseconds and wake on the next request. boat measured 26.69 runs per second at 4 vCPU / 8 GB.
Can Railway or Unikraft Cloud run Docker inside?
Railway's sandbox docs do not mention Docker, and Unikraft uses your Dockerfile to build the VM image with no container runtime inside documented. A boat sandbox is a full Ubuntu VM with Docker, systemd and /dev/kvm ready to use.
Can I SSH into them?
Railway sandboxes support SSH and port forwarding. Unikraft has no SSH yet, so you run commands and move files through its sandbox plugin and CLI. You can SSH into every boat sandbox too.
What happens when a sandbox goes idle?
Railway destroys it after the idle timeout, 30 minutes by default, and only checkpoints you took survive. Unikraft puts it in standby after a short cooldown and wakes it on the next request. boat stops it, keeps its disk, and charges nothing while it is stopped.
Where do they run?
Railway runs in California, Virginia, Amsterdam and Singapore. Unikraft runs in Dallas, Frankfurt, San Francisco, Singapore and Washington DC, with more metros on request. boat runs only in the EU, in Germany, Finland and France.
Try boat
Install the CLI, then run boat new.
7-day free trial