Pricing
In force from 31 August 2026. Prices in US dollars.
What the bill is made of
We count how long each service ran and how much disk it held, out of the same log gg status already reads. The bill is that log added up — not a separate system you have to take our word for.
| What | Price | Notes |
|---|---|---|
Anything that runs, size s0.5 vCPU / 1 GB, shared | $0.014 / hour ≈ $10 / month | The default, and what you get if you say nothing. Shared: it may burst to the full 0.5 vCPU and 1 GB, and it is guaranteed 100m of CPU and 256 MiB. That is why it costs a third of m. Enough for a small API, a worker, a static site, or a database you are developing against. |
Size m1 vCPU / 2 GB, dedicated | $0.042 / hour ≈ $30 / month | Dedicated: it reserves exactly what it is promised and is the last thing moved when a machine runs short. What a server-rendered app, a JVM or a postgres a real application depends on actually wants. |
Size l2 vCPU / 4 GB, dedicated | $0.084 / hour ≈ $60 / month | Twice m, for twice the price. A rate depends on size and not on kind — a service from your Dockerfile and a postgres are the same thing to the cluster, so they cost the same at the same size. |
| A job an image that runs to completion | the same rate, for the time it ran | A job is metered at its size for the interval it runs — from the moment the run’s container starts to the moment the run ends — and not for existing in between, nor for waiting for a machine or pulling the image. A migration that takes forty seconds at size s costs under a fiftieth of a cent. A run is stopped at its timeout, an hour at most, so a hung one costs no more than that; the timeout counts from when the run gets a machine. A job on a schedule is billed per firing, for the time each run ran; the schedule waiting between firings costs nothing. It is the same meter and the same log as anything else; what differs is that a run has an end, so the meter has one too. |
| Attached disk | $0.15 / GB-month | The volume that survives a restart — what you set in gigabytes when you attach a resource, or with --volume-size on a service. Prorated by the minute alongside the thing it belongs to. |
| Object storage | $0.03 / GB-month | Gagarin’s object storage, measured by how much data you hold, rounded up to the whole GB and prorated by the minute. No running charge — it runs nothing — and no charge for requests or traffic. Only the size of what you store. |
| Network traffic | free | In and out, both. Not an introductory allowance and not a rounding error we have not noticed yet: our own provider does not bill us for bandwidth, so this is a promise we can keep. Throughput is capped by the node, not the invoice. |
| Domain, ours or yours | free | Both gg domain add without an argument and with a name of your own are the same mechanism, and it is not billed separately. |
| Project memory | $0.10 / 1,000 notes-month | The notes your agent leaves itself about a project, counted by how many are in use and prorated by the minute like a disk. A project with a few hundred comes to a few cents a month; one at the cap of 5,000 comes to fifty cents. Archived notes are not counted, reading is not charged, and archiving one that is no longer true makes it cheaper as well as tidier. It is priced at all for the reason there is no free tier: it is useful without the rest of the platform, and a free store next to the meter is a second mechanism. |
A whole project, in full
A web service, a worker, a Postgres resource and 10 GB of disk — three things running, one volume, all at the default size:
web (s) 730 h × $0.014 $10.22
worker (s) 730 h × $0.014 $10.22
db (s) 730 h × $0.014 $10.22
db disk 10 GB × $0.15 $1.50
traffic $0.00
domain $0.00
───────
$32.16Move the database to m — which is what a database a real application depends on wants — and it is $52.60 a month.
730 hours is what an average month works out to. The round number is ten dollars a service; the arithmetic says $10.22. We would rather show you the arithmetic than a figure you have to take on trust.
How the billing works
By the minute. Something that existed for four minutes costs you four minutes. That matters more here than on an ordinary cloud: agents run this platform, and an agent that stands a service up, checks it and tears it down inside a coffee break has no business being charged an hour for it.
What ends, stops costing. A service is billed while it exists, because it is holding a slot on a machine whether or not anybody calls it. A job is billed only while it runs. That is the same rule stated twice — you pay for the time something occupies the platform — and a job is the case where that time has a natural end. A service we stop — when an account runs out of money, or a project is suspended — is not billed for running while it is stopped; its disk, buckets and project memory are.
You keep a balance, and we top it up. Usage comes off the balance as it happens. When you get to about three days from empty, we charge your card — $20, or two weeks of what you are currently running, whichever is more — and that goes on the balance. Then it happens again when you next get near the bottom. If you would rather top up yourself, you can switch that off on your billing page and keep the card for the button; we will email you three days before the balance runs out and again a day before, and services stop if it reaches zero. The same two emails go to an account with no card.
Three days, not a dollar. The trigger is time rather than an amount, and that matters if you run more than a couple of things. A dollar is three days for one service and three hours for twenty, so a flat threshold gives the biggest accounts the least warning — which is exactly backwards. Everybody gets the same three days to fix a card.
The one exception is the $5 you start with. It is spent down to its last dollar before your card is first charged, because it is a gift and the three days exist to protect money you paid. Warnings come three days out either way.
Nothing recurs, nothing is charged up front, and what you have not spent stays yours. Refunds are covered in the Terms of service.
What is not included
- You pick CPU and RAM with
--size, from the three above. There is no arbitrary CPU/memory pair, deliberately: what you can reserve is what fits on a machine, and three sizes say that honestly where two free-text numbers would not. It is a size, not a plan — nothing else about your account changes with it. - Ten projects per account. That is a guard against somebody else’s runaway loop, not a tier you can buy your way out of.
- One replica per service, and the rates above say so: $10 buys a single running copy, not redundancy. A node failure or an eviction is a restart, not a failover to a second copy you were quietly paying for. A service with a volume also restarts on every deploy — a disk can be attached in one place only, so the old container has to stop before the new one starts.
- Resources are unmanaged, except that postgres, qdrant and iggy are backed up nightly and kept fourteen days; a rabbitmq is not. No point-in-time recovery, no replication. What that means and why is on the refusals page.
- Anyone you make an editor can run up the owner’s bill — see the Terms of service.
- If the balance reaches zero, running services stop. Nothing is deleted then — your data and your volumes stay where they are, and everything starts again when there is money on the account. Volumes on an account left at zero for 30 days may be deleted, after an email; see the Terms of service.
$5 to start, and no free tier
Every new account starts with $5 on the house — about two weeks of one service at size s, and proportionally less at m or l. It is there because the first thing to try Gagarin is usually an agent, and an agent that has to stop and ask its human for a card before it can deploy anything is an agent that deploys nothing.
Nobody asks you for a card until that $5 is nearly gone, and nothing is charged while there is a balance to draw on. If you do put one on the account, it is charged when the balance runs low and not on any schedule — or whenever you press the button, if you would rather not wait for that, or never on its own if you switch that off.
After that the meter runs from your first deployed service. There is no free tier and there is not going to be one. A meter that always runs is the honest mechanism; a free tier is a second one sitting next to it. We are saying so out loud instead of leaving you to infer it.
There is one way to get more than $5 for nothing, and it needs a person on the other end. Once you have topped up for the first time you get an invitation link. Someone who signs up through it has their first top-up matched, up to $50 — put in $20 and $40 lands on the balance — and you get 15% of what they top up over their first three months, as credit on your own balance. It is credit, never cash, and the details, including what happens on a refund, are on the referrals page.
No plans
No Hobby, no Pro, no Team, no charge per seat. Adding somebody to a project costs nothing, because what costs money is a container that runs, and a colleague reading gg status is not one.