Railway Billing Inspector

Find what you're still paying for.

A free, open-source dashboard for your Railway account. It shows where the bill goes, flags projects that charge with nothing running, and cleans up only after you approve each change.

Runs on your own machine. Your Railway token never leaves it. The demo uses made-up data.

Nothing running, still charged
ProjectRunning?Per day
heroic-contentmentno$0.036
profound-upliftmentno$0.027
positive-inspirationno$0.027
daring-beautyno$0.012
and 10 moreno$0.098
14 projects$0.20 a day

The short version

How a pile of side projects turned into a $120 bill, and why I built a tool to read it.

Comic in four panels. One: 94 projects, every name picked by a dice roll; a developer squints at a board of names like steadfast-fascination and asks which one was the invoice bot. Two: then came the bill, $120 a month, for apps he forgot he had. Three: so I built an inspector; he pulls a lever, everything goes off, and only what he needs comes back on. Four: but some trains kept billing with nobody on board; empty train cars marked memory and volume cost $0.20 a day, and he says found you.

What it found in one of my workspaces

After the cleanup on September 25, nearly all of what this workspace still cost each day was for projects whose deployment history shows nothing running.

$14.79charged with nothing running, in 90 days
14projects
99%of it for memory
$0.20a day since the cleanup
Usage per day over 90 days: about $1.74 a day until the September 25 cleanup, then $0.20 a day, nearly all of it for projects with nothing running.
$14.79 charged with nothing running across 14 projects in 90 days, led by heroic-contentment at $3.20.

These are real numbers from one of my Railway workspaces. I run several Railway accounts and a few on Vercel, so they're a slice of my hosting bill, not all of it. On a plan whose fee already covers this much usage, idle charges may not add to the invoice, but they use up what the fee includes.

What you get

Pick one to see it. Every screenshot is from the live demo, which runs on made-up data.

Still on this period's bill: a tile saying projects with nothing running cost $0.02 a day, a donut of this period's cost by status, and a donut of what they're charged for.

It checks what Railway actually charged each project over the last two full days. A project with nothing running that was still charged says so, with the cost per day and the reason: memory or CPU still held somewhere, network traffic, or a volume that bills every day until it's deleted.

Nothing changes until you approve it

The dashboard starts read-only. When you do make a change, it goes through the same four steps every time.

Review dialog for removing one deployment: what will happen, how to undo it, the item that will run, and a box to type REMOVE 1 to approve.

Run it on your account

About five minutes. You need Node.js 20.9 or newer and a Railway account token.

Get the code

git clone https://github.com/sas70/railway-billing-inspector.git

Install

cd railway-billing-inspector && npm install

Add your token

cp .env.example .env.local

Create a token at railway.com/account/tokens (choose No workspace), then paste it after RAILWAY_TOKEN_MAIN= in .env.local.

Start it

npm run app

Then open http://127.0.0.1:3100. It only answers on your own machine.

Coming next

Vote, comment or suggest something on the roadmap.