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.

Example plan table
Feature keyFreePro
ai_credits (monthly amount)10500
export_pdf (on/off)—✓
seat_limit (limit)15

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 consume when 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.

  1. Add or rename plans with + Plan. Under each plan name is its plan id; click to copy it. You need it for grantPlan and for payment providers other than Stripe.
  2. Selling with Stripe? Paste the Stripe Price id (price_…) on each paid plan.
  3. Mark one free plan as Default free. That is where customers land when they cancel.
  4. Add feature keys with + Feature. These are the names your code asks about, so keep them short and stable, like ai_credits.
  5. 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.