Railway vs smol machines

Railway is an app platform that added sandbox VMs, which are destroyed when they go idle and can sit next to your Railway apps and databases. smol machines makes microVMs that keep their files when stopped, branch with their memory, and run the same on your laptop, in its cloud or on your own servers.

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.

smol machines

smol machines makes fast, isolated Linux microVMs that run the same way on your laptop, in their hosted cloud, or on your own servers.

The core is smolvm, an open-source microVM engine built on libkrun, where each machine has its own guest kernel. smol cloud is the paid hosted service that runs fleets of those machines behind a REST API and Node, Python and Rust SDKs. It is built for developers who want one VM model from local development to production, with live branching of running machines.

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 workloadRailway: price ranksmol machines: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
smol machines keeps a stopped machine's files and runs Docker inside, while Railway sandboxes are destroyed when idle; bochka adds /dev/kvm, SSH and coding agents you drive from outside.
51st of 367, with limits
$342 a month
73rd of 367, with limits
$604 a month
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, smol machines only as a compromise, and bochka adds a desktop, a browser and a credentials proxy.
16th cheapest of 366
$3,977 a month
148th of 366, with limits
$1,038 a month
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
Both fit short code runs well: Railway bills for CPU used and destroys the sandbox after, and smol machines has a one-minute minimum and a /code endpoint.
36th cheapest of 345
$413 a month
12th cheapest of 345
$140 a month
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
smol machines fits sandboxes for your users with 1,000 machines on Startup, while Railway caps each environment at 100 sandboxes on Pro.
42nd of 361, with limits
$290 a month
7th cheapest of 361
$531 a month
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
smol machines can branch a running machine with its memory and processes, so many rollouts start from one prepared state; Railway forks the filesystem only.
78th of 360, with limits
$4,450 a month
111th of 360, with limits
$6,978 a month
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
Both can fork a running machine, but Railway's cap is per environment, while smol machines branches with memory and holds up to 1,000 machines on Startup.
108th of 364, with limits
$364 a month
36th cheapest of 364
$670 a month
10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
smol machines runs Docker inside a machine, which Railway's sandbox docs do not mention; bochka has Docker and /dev/kvm on every machine.
113th cheapest of 377
$1,210 a month
66th cheapest of 377
$514 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
66th cheapest of 368
$89 a month
216th of 368, with limits
$29 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
Neither has a hosted desktop, so computer-use agents fit only as a compromise on both; bochka streams a 60fps desktop with computer use built in.
77th of 369, with limits
$103 a month
90th of 369, with limits
$156 a month
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
176th of 367, with limits
$136 a month
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
241st of 346, with limits
$242 a month
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
148th of 338, with limits
$4,344 a month
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
252nd of 360, with limits
$377 a month
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 itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureRailwaysmol machinesbochka
Kind of productApp platform for apps and databases, with sandbox VMs added in 2026Open-source microVM engine (smolvm) plus a paid hosted cloudSandbox VMs for agents, hosted in the EU
IsolationSandboxes are isolated Linux VMs; app services are containerslibkrun microVM with its own guest kernelFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
When the machine goes idleDestroyed after the idle timeout (30 minutes by default); files survive only in checkpoints you takeFilesystem survives a stop, memory paths like /tmp are emptied; stopped disk keeps billingStops and keeps its disk, saved every minute and on stop; a stopped sandbox costs nothing
ForkFork a running sandbox's filesystem; disk checkpoints to boot new ones (no memory)Branch a running machine with its memory and processes; checkpoints capture RAM to a fileFork a running sandbox with its disk; named snapshots to start new ones
Docker and nested virtualizationRoot shell on Ubuntu; the sandbox docs do not mention Docker or /dev/kvmDocker inside the machine; nested virtualization not exposed in the cloud APIDocker, root, systemd and /dev/kvm on every machine
Shell accessSSH and port forwarding, plus execCommand API, sessions and a WebSocket terminal capped at one hour per connection; no SSHSSH, plus a command API and terminal
Inbound accessUp to 10 public HTTPS domains, set only at creationUp to 16 published ports through a returned URL or an authenticated connect routeHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv4 or IPv6
Outbound rulesOpen internet; static outbound IPs for services on ProBlocked, open, or an allowlist of hosts and CIDR rangesOpen internet, no provider-side allowlist
Desktop and computer useHeadless: terminal, exec and SSH onlyNo hosted desktop; a guide shows running your own Chromium inside a machine60fps Linux desktop with Chromium, computer use and an embeddable stream
Coding agentsClaude Code, Codex, OpenCode and Pi preinstalled; you run them headless through execRegistry images with the Codex CLI and the Harbor eval harness, run through the command APISeven agents preinstalled, with a prompt, steer and events API
Keeping API keys out of the sandboxSecrets go into the sandbox as environment variablesCloud secrets are environment variables the guest can read; credential swapping only in self-hosted smolvmCredentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out
Apps and databases next to the sandboxDeploy Postgres, Redis and services in the same project; a sandbox can join their private networkIdle apps scale to zero and wake on the next request; no hosted databasesNo hosted databases or app services; host your own inside a sandbox
Machines at once50 per environment on Hobby, 100 on Pro20 on Standard, 100 on Pro, 1,000 on Startup; stopped machines count too100 to 2,000 by plan
Regions and self-hostingUS West, US East, Amsterdam and Singapore; BYOC listed for EnterpriseNo region choice in the cloud API; smolvm runs on your laptop or your own serversEU only: Germany, Finland, France, with EU data residency; hosted only
Every feature Battleships tracks (43)
FeatureRailwaysmol machinesbochka
Full VM (own kernel)YesYesYes
Docker insideNot publishedYesYes
Nested virtualizationNoNoYes
RootYesNot publishedYes
SystemdNot publishedNot publishedYes
Desktop GUINoNoYes
BrowserYesNoYes
Computer-use APINoNoYes
SSHYesNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsNoNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNot publishedYes
Public IPv4NoNoNo
Egress allowlistNoYesNo
Secret proxyNoNoYes
Secret proxy for any APINoNoYes
Preinstalled agentsYesYesYes
Agent harness APIYesNoYes
MCP serverYesYesNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCYesYesNo
Open sourceNoYesNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesYesYes
Usage per sandbox (API)NoYesYes
Audit logsYesNot publishedNo
SSOYesYesNo
SOC 2YesNoNo
HIPAAYesNoNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

RailwayNot measured
smol machinesNot measured
bochka26.69 runs/s

There is no comparable measurement for either. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's public benchmark, but neither Railway nor smol cloud has a result there, so we cannot say which of the three is faster. smol machines publishes a boot time under 200ms for smolvm, which is a start-time figure, 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 smol machines 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.

ScenarioRailway, a monthsmol machines, a monthbochka, 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$25 · Standard$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$70 · Hobby · with limits$93 · Standard$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$1,139 · Pro$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$465 · Startup$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$1,389 · Startup$2,000 · $2000/mo · with limits

Railway: Railway bills sandboxes per second at $50 per vCPU-month on CPU actually used and $50 per GB-month on memory in use, and memory keeps billing while a sandbox waits until it is destroyed. The Hobby ($5) and Pro ($20) fees count toward usage, and Railway does not publish a sandbox disk price, so our bills leave disk out.

smol machines: smol cloud charges a base fee for every hour a machine runs plus the CPU and memory the guest actually uses, with a one-minute minimum and disk billed even while stopped. Pro ($20) and Startup ($150) are fees added on top of usage, not credit.

Limits in those scenarios

Railway is marked as not a clean fit in every scenario because it is an app platform first and does not price sandbox disk, and its Pro cap of 100 sandboxes per environment is too low for 300 sandboxes for your users or 1,000 jobs at once. smol machines fits every scenario, but stopped machines hold a slot, so 50 agents in parallel needs Pro and 1,000 jobs at once needs Startup, whose fee is added on top. bochka fits every scenario except the 1,000-job burst, where its $2,000 plan queues starts above 90 a minute.

ScenarioRailwaysmol machinesbochka
One coding agent, workdays
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
None that biteNone that bite
One agent that never stops
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
None that biteNone that bite
50 agents in parallel
  • not confirmed: Docker inside
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
None that biteNone that bite
Sandboxes for your users
  • Pro: max 100 concurrent
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
None that biteNone that bite
1,000 short jobs at once
  • Pro: max 100 concurrent
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
None that bite
  • 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)

Which one should you use?

Use Railway when

your app and databases already live on Railway and you want short-lived sandboxes on the same private network, or you need US or Asia regions.

  • Your apps and databases in one place. Useful if your app already runs on Railway: sandboxes can join the same private network as your Postgres and services.
  • Regions in the US, EU and Asia. Useful if your users are spread out: you can pick California, Virginia, Amsterdam or Singapore for each sandbox.
  • Throwaway jobs with SSH. Useful for quick jobs: a sandbox bills for CPU used, is gone when idle, and takes SSH, which smol cloud does not.

Use smol machines when

you want one open-source VM engine from your laptop to your own servers, machines that keep their files when stopped, or many branches of a running machine with its memory.

  • Live branches with memory. Useful for RL and test fan-out: branch a running machine with its memory and processes, paying the one-minute minimum once.
  • One engine from laptop to your servers. Teams that want the same VM locally, in a hosted cloud and on their own servers get it from open-source smolvm.
  • Files that stay, and outbound allowlists. A stopped machine keeps its files and wakes on the next command, and you can limit which hosts it reaches.

Where bochka fits

Railway and smol machines both run each sandbox in a VM, but both leave out pieces an agent often needs: a desktop, nested virtualization and a way to keep keys out of the guest. If your agents work for hours on real projects, test in a browser or run emulators, bochka gives each one a fuller machine that keeps its disk and costs nothing while stopped.

A whole machine: Docker, KVM and SSH

Railway's sandbox docs do not mention Docker or /dev/kvm, and smol cloud exposes neither nested virtualization nor SSH. An agent that boots an Android emulator or a VM cannot do it on either; bochka has Docker, systemd, /dev/kvm and SSH on every machine.

A desktop and agents you drive from outside

Both are headless, so a computer-use agent means building your own desktop and stream, and both run coding agents only through exec calls you parse yourself. bochka streams a 60fps desktop and has a prompt, steer and events API.

Keys that stay outside, and a disk that stays

On both, secrets are environment variables the guest can read, so one prompt injection can leak them. bochka's credentials proxy keeps real keys outside for any HTTPS API, and its disk is saved every minute, where Railway destroys idle sandboxes.

Use bochka when your agents need a whole machine for real work: Docker, emulators, SSH, a desktop and a browser, a disk that stays, and coding agents you drive from outside while their keys stay outside. Compare it one to one: bochka vs Railway and bochka vs smol machines.

Questions people ask

Is Railway cheaper than smol machines?

In our five scenarios Railway's bills are lower, for example $70 against $93 for one agent running all month, but they leave out disk, which Railway does not price, and Railway is not a clean fit in any of them. On bochka the same always-on agent comes to $26.

Which is faster, Railway or smol machines?

We cannot say: neither has a result in the StarSling CPU benchmark we use. bochka did 26.69 runs per second there at 4 vCPU / 8 GB. smol machines publishes a boot time under 200ms, which measures start time, not CPU speed.

Can Railway or smol machines run Docker?

smol machines runs Docker inside a machine, and its guide says Docker data must live on the machine's ext4 disk. Railway's sandbox docs do not mention Docker. bochka has Docker, systemd and /dev/kvm on every machine.

What happens when a sandbox goes idle?

Railway destroys it after the idle timeout, 30 minutes by default, and only checkpoints you took survive. smol machines keeps the filesystem of a stopped machine but empties /tmp, and the disk keeps billing. bochka keeps the disk and charges nothing while stopped.

Can I fork a running machine on Railway or smol machines?

Both can. Railway forks a running sandbox's filesystem, while smol machines branches a running machine with its memory and running processes. bochka forks a running sandbox with its disk.

Is bochka SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.

Try bochka

Install the CLI, then run bochka new.

Product preview

More comparisons

Bochka product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.