Plans and limits
Your plans live in one table in the dashboard: plans across the top, feature keys down the side, and what each plan gets in each cell. Change a number and it applies on the next request, with no deploy.
| Feature key | Free | Pro |
|---|---|---|
| ai_credits (monthly amount) | 10 | 500 |
| export_pdf (on/off) | — | ✓ |
| seat_limit (limit) | 1 | 5 |
Three kinds of feature
- Monthly amount, like AI credits or API calls. Your code spends it with
consume, and it refills every billing period. (Type: METERED) - Limit, like seats or projects. Your code calls
consumewhen the user adds one, and gets a no at the cap. (Type: NUMERIC_LIMIT) - On/off, like PDF export or SSO. Your code asks with
canAccess. (Type: BOOLEAN)
Edit your plans
Open Access rules. New workspaces already have Free, Starter and Pro filled in.
- Add or rename plans with + Plan. Under each plan name is its plan id; click to copy it. You need it for
grantPlanand for payment providers other than Stripe. - Selling with Stripe? Paste the Stripe Price id (
price_…) on each paid plan. - Mark one free plan as Default free. That is where customers land when they cancel.
- Add feature keys with + Feature. These are the names your code asks about, so keep them short and stable, like
ai_credits. - Fill the cells: a number, a tick, or empty for “not included”. Then Save.
Prefer code? gate.putRules() and gate.getRules() read and write the same table; see the SDK reference.

