Feature Flags
Navigate to Settings → Plans & Billing → Feature Flags to control which features are available across different plan tiers. This is the master switch for the entire product's feature gating system.
Feature Flag Properties
| Field | Purpose |
|---|---|
| Name | Internal feature name used in code (e.g. "automation_engine", "female_insights") |
| Description | Internal description for platform team reference |
| Category | Grouping for the feature comparison table (e.g. "Core", "Engagement", "Advanced") |
| Icon | Searchable Lucide icon for visual identification on public pages |
| Plan Tier Availability | Checkboxes for T1, T2, T3 — which tiers include this feature |
| Public Description | Marketing text shown on the public pricing/comparison page |
| Hide from Public Website | Toggle to keep internal/beta features off the public feature list |
| Display Only | Bypasses all gating logic — the feature is always visible regardless of plan. Use for features that should be universally accessible. |
Feature Access Hierarchy
Access is resolved in this strict order:
- Gym-level Override — If set, always wins (see Feature Overrides per Gym)
- Plan Features — Features included in the gym's subscription tier
- Global Defaults — The base configuration from feature flags
This hierarchy is enforced via the useGymFeatureAccess hook throughout the entire gym-facing codebase.
Creating a New Feature Flag
- Click + Add Feature
- Enter name, description, and category
- Select which plan tiers should include this feature
- Add a public description if it should appear on the pricing page
- Set "Hide from Public Website" if this is an internal or beta feature
- Save — the feature is immediately gated across all gyms
Category Management
Feature categories organise the public comparison table. Categories support:
- Drag-and-drop reordering
- Slug-based IDs for direct hash linking from the public comparison page (e.g.
/pricing#engagement) - Icon assignment for visual grouping
Common Workflows
- Launching a new feature — Create the flag, assign to T3 only, test with beta gyms via overrides, then expand to lower tiers
- Sunsetting a feature — Remove from all tiers, then archive the flag
- Feature trial for a gym — Use gym-level override instead of changing the flag