Limits and quotas
Last updated
There are three different things people call "limits", and they behave differently.
1. Per-app allocation
Choose CPU and RAM presets on each app's Performance tab. These reserve resources for that app and determine its compute charges, whether it is busy or idle. Changes take effect when the app restarts.
HTTPS, logs, a web shell, and Git deploys are included with your apps.
2. Account resource limits
These cap how much you can allocate across all your applications. Defaults are modest and are raiseable by contacting support — they are a starting point, not a maximum.
They are not a bill. Allocating less than your limit is normal; the limit only stops you choosing a preset you can't afford to run.
Two consequences worth knowing:
- Presets above your account limit appear greyed out rather than hidden, which reads like a bug and isn't.
- Your other apps draw from the same pool, so a preset available yesterday can be unavailable today.
3. The disk limit, which behaves differently
Disk deserves its own section because its failure is the harshest on the platform.
Disk usage is the total size of your volumes. Images and build layers don't count toward it.
If that total exceeds your account limit, every application in the account is stopped, and none can start until total volume size drops back below the limit. Not just the app that filled up — all of them.
That makes anything which accumulates data — user uploads, logs written to a volume, database backups nobody prunes, unbounded conversation history — the most likely cause of a platform-wide outage in your account. Prune deliberately, and watch the trend rather than the level.
What you pay for
Billing is pay-as-you-go on what you allocate, prorated per minute. Rates are $1.90 per vCPU-month, $1.95 per GB RAM-month, and $0.25 per GB disk-month. The full allocation is billed, with no free resource allowance or discount. See the pricing page for a calculator and worked examples.
Two things follow:
- The number of apps is not a billing unit. Resources are aggregated across all your applications, so splitting one app into two costs nothing by itself — though both draw on the same account limits.
- You pay for allocation, not usage. An idle container still bills for the CPU and RAM it reserved, so a preset you raised while debugging keeps costing until you lower it.
Ports, HTTPS certificates, logs and the dashboard are included at no extra cost.
Sizing without waste
- Start with a small allocation that fits your workload.
- Move up only on evidence — an out-of-memory kill (exit code 137) or measured CPU throttling.
- Check your presets again after you fix the thing that made you raise them.
- Treat disk as a growth curve, not a level.