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.

Included Included

Free

$0
$0

Default access for new users and trial accounts.

Access 0 25 credits / month
Access 0 25 credits / year
  • Email login
  • Basic dashboard
  • 25 starter credits
Monthly subscription Yearly subscription

Starter

$19/mo Billed monthly
$228/yr $15.83/mo $190 billed yearly · save $38

For a small paid SaaS tier.

Access 10 100 credits / month
Access 10 1,200 credits / year
  • Starter access level
  • 100 credits per billing period
  • Good for lightweight products
Monthly subscription Yearly subscription

Pro

$49/mo Billed monthly
$588/yr $40.83/mo $490 billed yearly · save $98

For heavier usage and premium features.

Access 20 500 credits / month
Access 20 6,000 credits / year
  • Pro access level
  • 500 credits per billing period
  • Access to higher-value actions
Monthly subscription Yearly subscription

Scale

$149/mo Billed monthly
$1,788/yr $124.17/mo $1,490 billed yearly · save $298

For power users and high-credit products.

Access 30 2,000 credits / month
Access 30 24,000 credits / year
  • Scale access level
  • 2,000 credits per billing period
  • Highest default allowance
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.