Railway vs Upstash Box

Railway is an app platform whose sandboxes are Linux VMs that are destroyed when they go idle, next to your apps and databases. Upstash Box gives each agent a light Docker container that pauses when idle, keeps its files, 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.

Upstash Box

Upstash Box is a cloud computer for AI agents from Upstash, the company known for serverless Redis, Vector and QStash.

Each box is a Docker container with its own filesystem, shell, git and an optional coding agent such as Claude Code, Codex or OpenCode, which you drive from TypeScript or Python SDKs. A box pauses when it sits idle, keeps its files, and you pay for the CPU it actually uses. Upstash built it to run its own Context7 service and opened it to everyone in March 2026.

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 rankUpstash Box: price rankbochka: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Both are a compromise for a software factory: Railway sandboxes are destroyed when idle and an Upstash box cannot run Docker, while bochka keeps the disk and runs Docker.
51st of 367, with limits
$342 a month
61st of 367, with limits
$464 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 with the idle timeout set to 0 or a Cloud Agent, while Upstash fits only as a compromise here.
16th cheapest of 366
$3,977 a month
103rd of 366, with limits
$475 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
Upstash Box ranks 10th for short code runs because an idle box costs no CPU, ahead of Railway, which bills CPU used and memory in use.
36th cheapest of 345
$413 a month
10th cheapest of 345
$119 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
Upstash Box ranks 2nd and bochka ranks 1st, while Railway's cap of 100 sandboxes per environment on Pro makes it a compromise for 300 users at once.
42nd of 361, with limits
$290 a month
2nd cheapest of 361
$222 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
78th of 360, with limits
$4,450 a month
352nd of 360, with limits
$8,068 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
108th of 364, with limits
$364 a month
52nd cheapest of 364
$1,011 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
CI jobs that build containers need Docker, which neither Railway's sandbox docs nor Upstash's container boxes offer, and which bochka has on every machine.
113th cheapest of 377
$1,210 a month
120th cheapest of 377
$1,520 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A flat-price keep-alive box makes Upstash a cheap light dev box, while Railway's Cloud Agents are early access and fixed at 4 vCPU / 4 GB on Pro.
66th cheapest of 368
$89 a month
10th cheapest of 368
$20 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 or drive, so computer-use agents are a compromise on either, while bochka streams a full desktop at 60fps.
77th of 369, with limits
$103 a month
73rd of 369, with limits
$76 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
49th of 367, with limits
$38 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
37th cheapest of 346
$400 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
200th of 338, with limits
$8,000 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
225th of 360, with limits
$259 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

FeatureRailwayUpstash Boxbochka
IsolationSandboxes are isolated Linux VMs; app services are containersOne Docker container per box on AWSFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
When the sandbox goes idleDestroyed after the idle timeout (30 minutes by default); files survive only in checkpoints you takePauses itself and keeps its files; storage keeps billing while pausedYou stop it; the disk is saved every minute and on stop, and a stopped sandbox costs nothing
Docker and nested virtualizationRoot shell on Ubuntu; the sandbox docs do not mention Docker or /dev/kvmNot documented; the box is itself a Docker container, and custom images are listed as coming soonDocker, root, systemd and /dev/kvm on every machine
Biggest machine8 vCPU / 8 GB on Hobby, 32 vCPU / 32 GB on ProLarge: 8 vCPU / 16 GB8 vCPU / 16 GB on the $20 plan, 16 vCPU / 32 GB from $100
DiskSandbox disk size and price are not published5, 10 or 20 GB by size, billed per GB-month50 GB at the default 4 vCPU / 8 GB size, 12 to 251 GB by size
Wake on requestNo; a destroyed sandbox is booted again from a checkpointYes; a request to a public URL resumes a paused box and waits for the appNo; a stopped sandbox is started by API
Sandboxes at once50 per environment on Hobby, 100 on Pro; Enterprise can ask for more1,000 on Pay as You Go, raised on request100 to 2,000 by plan
Desktop and browserHeadless: terminal, exec and SSH onlyManaged headless Chromium with AI page actions and CDP; no desktopLinux desktop streamed at 60fps, Chromium, computer use and browser control
Reaching the sandboxUp to 10 public HTTPS domains, set only at creation; SSH and port forwardingHTTPS URL per port, public unless you add a token or basic auth; SSH through a gateway; no raw TCPHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPv6 or IPv4
Outbound rulesNo outbound allowlist for sandboxesAllow all, deny all, or allow and deny by domain and CIDR, changeable on a running boxOpen internet, no provider-side allowlist
Coding agentsClaude Code, Codex, OpenCode and Pi preinstalled; you run them headless through execClaude Code, Codex and OpenCode built in, with run and stream APIs, webhooks and scheduled promptsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API
Keeping API keys out of the sandboxSecrets are baked into the sandbox as environment variables, or signed in and saved in a checkpointHost proxy injects headers into outbound HTTPS on port 443; set when the box is createdAI credentials proxy for model providers and any HTTPS API you register; 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 networkNo private network for boxesNo hosted databases or app services; host your own inside a sandbox
RegionsUS West, US East, Amsterdam and SingaporeUS only (AWS us-east-1)EU only: Germany, Finland, France
Every feature Battleships tracks (43)
FeatureRailwayUpstash Boxbochka
Full VM (own kernel)YesNoYes
Docker insideNot publishedNoYes
Nested virtualizationNoNoYes
RootYesNot publishedYes
SystemdNot publishedNot publishedYes
Desktop GUINoNoYes
BrowserYesYesYes
Computer-use APINoNoYes
SSHYesYesYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsNoNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkNoNoNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestNoYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNoYes
Public IPv4NoNoNo
Egress allowlistNoYesNo
Secret proxyNoYesYes
Secret proxy for any APINoYesYes
Preinstalled agentsYesYesYes
Agent harness APIYesYesYes
MCP serverYesYesNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoNoNo
BYOCYesNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)NoYesYes
Audit logsYesNot publishedNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesNoNo
EU data residencyYesNoYes
Zero data retentionNot publishedNot publishedYes

Performance

RailwayNot measured
Upstash BoxNot measured
bochka26.69 runs/s

Neither Railway nor Upstash Box has a result in StarSling's hpc-sandbox-benchmarks CPU test, so we cannot say which of the two is faster. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in that benchmark, on dedicated AMD Ryzen 9 9950X hosts.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Railway and Upstash Box 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 monthUpstash Box, 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$21 · Pay as You Go$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$70 · Hobby · with limits$21 · Pay as You Go$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$900 · Pay as You Go · with limits$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$306 · Pay as You Go$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,822 · Pay as You Go$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, plus $0.05 per GB out, and memory keeps billing while a sandbox waits. The Hobby ($5) and Pro ($20) fees count toward usage, and sandbox disk has no published price, so our bills leave it out.

Upstash Box: A standard box is billed for CPU it actually uses, at $0.10, $0.20 or $0.40 per active CPU hour for Small, Medium and Large, plus $0.10 per GB-month of storage, and RAM is free. A keep-alive box costs a flat $8, $16 or $32 a month whether busy or not.

Upstash Box: Plans start at $20 a month, and the whole fee is usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Railway marks every scenario as not a clean fit because it is an app platform first and does not publish a sandbox disk price, and its cap of 100 sandboxes per environment on Pro means 300 users or 1,000 jobs at once need several environments. Upstash Box cannot run Docker inside a box, so the 50-agent scenario does not fit there, and its keep-alive boxes bill whether used or not, with no published egress price. On bochka, the 1,000-job burst is queued above 90 starts a minute and needs more starts per day than the $2,000 plan allows.

ScenarioRailwayUpstash Boxbochka
One coding agent, workdays
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
One agent that never stops
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
50 agents in parallel
  • not confirmed: Docker inside
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
  • missing Docker inside
  • flat pool: the tier is billed whether used or not
  • egress price not published
None that bite
Sandboxes for your users
  • Pro: max 100 concurrent
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
1,000 short jobs at once
  • Pro: max 100 concurrent
  • different kind of product: app platform
  • disk beyond 0 GiB: price unknown
  • egress price not published
  • 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 VM sandboxes on the same private network, bigger machines, or regions in the US, EU and Asia.

  • Your apps and databases in one place. Useful if your app already runs on Railway: a sandbox can join the private network of your Postgres and services.
  • Regions on three continents. Useful if your users are spread out: Railway runs in California, Virginia, Amsterdam and Singapore, while Upstash Box runs in us-east-1 only.
  • Bigger VMs. Useful for heavy builds: Railway sandboxes are VMs that go up to 32 vCPU / 32 GB on Pro, against 8 vCPU / 16 GB on Upstash.

Use Upstash Box when

your agents mostly wait, need to wake on an incoming request, must stay inside a strict outbound allowlist, or you need 1,000 boxes at once in the US.

  • Idle costs no CPU, and a request wakes the box. Good for agents that wait a lot: an idle box costs no CPU, RAM is free, and a request to its URL wakes it.
  • Outbound network rules. Useful when an agent may only reach a short list of domains or IP ranges, changeable on a running box.
  • Many boxes at once. Useful for big bursts: Pay as You Go runs 1,000 boxes at once, where Railway caps Pro at 100 per environment.

Where bochka fits

If your agents work for hours or days and need a real machine, look at bochka. Each sandbox is a full VM with Docker, /dev/kvm and a 60fps desktop that stops instead of disappearing, keeps its disk, and runs coding agents you drive from outside while their keys stay outside.

Docker and KVM on every machine

An Upstash box is itself a container with no Docker inside, and Railway's sandbox docs do not mention Docker or /dev/kvm. That is why 50 agents running Docker do not fit cleanly on either.

A disk that stays

Railway destroys an idle sandbox after 30 minutes by default, and turning that off means memory bills until you destroy it. Upstash keeps files, but disks stop at 20 GB and storage bills while paused.

A desktop the agent can see

Both are headless: Railway gives a terminal and Upstash a Chromium driven over CDP. A computer-use agent on bochka gets a full Linux desktop at 60fps, with desktop apps and dialogs in reach.

Use bochka when your agents need a real machine for hours or days: Docker, /dev/kvm, a desktop, a big disk that stays, and coding agents you drive from outside. Compare it one to one: bochka vs Railway and bochka vs Upstash Box.

Questions people ask

Is Railway cheaper than Upstash Box?

In four of the five scenarios on this page, yes: one agent on workdays is $16 against $21, 50 agents are $739 against $900, and sandboxes for your users are $223 against $306. Upstash is lower for one agent that never stops, $21 against $70, and Railway's numbers leave out disk, which it does not price.

Which is faster, Railway or Upstash Box?

Neither has a result in StarSling's public CPU benchmark, so there is no fair comparison. bochka did 26.69 Node.js build-and-test runs per second there at 4 vCPU / 8 GB.

Can Railway or Upstash Box run Docker?

Railway's sandbox docs give you a root shell on Ubuntu but do not mention Docker. Each Upstash box is itself a Docker container, and custom images are listed as coming soon. bochka sandboxes are full VMs where Docker, docker compose and systemd work as on any Linux server.

Are Railway sandboxes and Upstash boxes VMs or containers?

Railway calls each sandbox a fully isolated virtual machine, while its app services are containers. An Upstash box is a Docker container with its own filesystem, process tree and network stack. Every bochka sandbox is a full VM with its own kernel.

What happens when a sandbox goes idle?

Railway destroys it once the idle timeout runs out, 30 minutes by default, unless you set it to 0; files survive only in checkpoints. Upstash pauses the box after 6 hours idle on Pay as You Go, keeps its files and wakes it on the next request. bochka stops a sandbox, keeps its disk and charges nothing while stopped.

Where do Railway and Upstash Box run?

Railway has regions in California, Virginia, Amsterdam and Singapore, and new sandboxes start in US West unless you pick one. Upstash Box runs in AWS us-east-1 only, with more regions planned. bochka runs in the EU, in Germany, Finland and France.

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.