Compute & storage
| Plan | Starter | Live | Studio |
|---|---|---|---|
| Price | CA$0 | CA$9 (CA$99/yr) | CA$149 (CA$1,490/yr) |
| Always-on projects | Sleeps after 3h idle | 2 projects always-on | 10 projects always-on |
| Application memory | 512 MB | 2 GB | 8 GB+ (per block) |
| Storage (pooled) | 5 GB | 25 GB | 100 GB |
| Build memory | 4 GB | 6 GB | 8 GB |
| Upload cap | 100 MB | 500 MB | 1 GB |
| Bandwidth | 1 TB | Unlimited (AUP) | Unlimited (AUP) |
| Custom domains | No | Yes | Yes |
| ML Python + Rust + BoxLang | No | Yes | Yes |
Upload & deploy size caps
The compressed-archive cap for a drag-and-drop upload or a canner deploy — enforced at the upload endpoint, per plan. Anonymous (no-account) deploys cap at 50 MB regardless. node_modules and other build output are excluded before upload, so this is almost always your source plus committed assets.
| Plan | Archive cap |
|---|---|
| Starter | 100 MB |
| Live | 500 MB |
| Studio | 1 GB |
Passkey authentication (Canner Auth)
The sign-in API itself is on every plan, free included. A monthly active user is one who signed in during the last 30 days. Reaching the cap stops newenrolments only — everyone already using your app keeps signing in, because locking a tenant’s customers out over a billing relationship they are not party to is not a limit, it is an outage. Full guide: Passkeys for your app.
| Plan | Starter | Live | Studio |
|---|---|---|---|
| Passkey sign-in API | Yes | Yes | Yes |
| Monthly active end users | 1,000 | 125,000 | Unlimited |
| Canner Auth apps | Unlimited | Unlimited | Unlimited |
| Auth emails / day, per organization | 50 | 5,000 | 50,000 |
| Sign-in behaviour settings | No | Yes | Yes |
| Management API (secret key) | No | Yes | Yes |
| Send from your own domain | No | Yes | Yes |
The daily email cap is the one that usually binds first, and it is deliberately sized so the user number above it is reachable. Both it and the user count are measured across your whole account, not per app — which is why the number of apps is not rationed: another app adds no load and buys no headroom, so charging for one would be charging for how you choose to organise things. Apps that enrol users through their own backend (/v1/auth/tickets) send no email at all and are limited only by the user count.
What each plan unlocks
Some capabilities are gated rather than metered. ML Python (PyTorch/TensorFlow/transformers), Rust, and BoxLang need the memory and build budget of a paid plan, so they require Live or above. Custom domains are also a paid-plan feature. Always-on is an allowance rather than a switch: Live keeps 2 projects permanently up and Studio 10, and any project beyond that sleeps after about three hours of inactivity and wakes on the next request. Storage is one pooled figure per organization covering applications, builds, databases, Data Workshop and object storage.