Tiers & Feature Gates
What each subscription tier unlocks and how Pennant flags / addons interact.
User goal
Understand why a feature is visible or shows an upgrade prompt.
- Tier
- Reference
- Nav label
- Billing
- Route
- /billing
- Gates
- —
QA focus
- Test same route as Free vs Pro vs Team user
- Test org with flag deactivated via Filament segment
- Addon: tier includes vs Stripe add-on price
Overview
Access is layered: subscription tier and optional Pennant feature and optional addon purchase. Use this guide to explain why a feature is visible or shows an upgrade prompt.
What you get
- Tier matrix expectations (Free / Pro / Team and above) for UI and API
- Pennant flag behavior when a flag is off for an org
- Addon entitlement nuance: included on tier vs Stripe add-on price
How it works
- Sidebar uses
@featureand@addon— inactive features link to upgrade pages (not raw 500s) - Test the same route as Free vs Pro vs Team, and with flags deactivated via Filament
- Compare UI and API responses against the tier matrix on
/docs
Interactive guide
Step of
All steps (reference)
-
Step 1. Verify tier matrix
Compare UI and API responses against the tier matrix table on /docs.
What to do: Create orgs on free/pro/team via factory or admin panel
Expected (pass)
- Free: spelling only; no API tokens
- Pro: SEO audit, API, PDF
- Team: GSC, intelligence, URL monitor
Negative cases (must fail safely)
- Free user hitting /api/tokens → blocked or upsell
-
Step 2. Pennant flags
Some features need both tier AND flag (e.g. duplicate-content, runtime-diagnostics).
What to do: Deactivate flag for org in admin; reload project page
Expected (pass)
- Nav item hidden or route returns 403 with clear message