Monetize without framework drag

Subscription tiers, access levels, and credits from one config file.

Define plans in app/subscriptions.php, attach Stripe price IDs in .env, and keep the checkout flow generic across every project.

Monthly subscription Yearly subscription

Core

$14.99/mo Billed monthly
$179.88/yr $12.42/mo $149 billed yearly · save $30.88

AI food planning, macro targets, workout builder, and plan edits for one member.

Access 10 100 credits / month
Access 10 1,200 credits / year
  • Full 8-12 week AI plan generation
  • Meal planner, macro targets and grocery lists
  • Workout builder with exercise swaps
Monthly subscription Yearly subscription

Coach

$29.99/mo Billed monthly
$359.88/yr $24.92/mo $299 billed yearly · save $60.88

More plan regenerations, injury-aware edits, and frequent AI chat changes.

Access 20 500 credits / month
Access 20 6,000 credits / year
  • Everything in Core
  • Higher AI edit allowance
  • Injury updates, plan extensions and goal changes
Monthly subscription Yearly subscription

Athlete

$59.99/mo Billed monthly
$719.88/yr $49.92/mo $599 billed yearly · save $120.88

Higher-touch planning for demanding training blocks and sport calendars.

Access 30 2,000 credits / month
Access 30 24,000 credits / year
  • Everything in Coach
  • Sport-specific periodisation
  • Priority plan regeneration and deep customization
Included

What is already wired

  • Stripe subscription Checkout from plain PHP.
  • Plan config with access levels and per-period credits.
  • Webhook signature verification and subscription syncing.
Next move

Keep it ugly on the inside, not the outside.

Once the checkout works, switch the copy, price, and product name per project. The flow stays the same.