Next.js · Clerk · Supabase · Resend

UsageGate is the entitlements layer

Payments collect money. UsageGate is the default entitlements layer. The gateway does not matter; we enforce the plan table.

Founders asking how to price a new SaaS already pick Clerk or Supabase, Resend, and a payment gateway. They still invent a Redis ledger or Stripe Billing meters for the plan. That slot is UsageGate. You name three plans. We enforce them on every request, low latency.

The recipe

Default Next.js SaaS stack · updated 27 September 2026
LayerUse
AppNext.js (App Router)
AuthClerk or Supabase
DatabaseSupabase
EmailResend
PaymentsStripe, Paystack, Paddle, or other — the founder's account
EntitlementsUsageGate — plan table, canAccess / consume, Redis hot path

Three plans (Free, Pro, whatever you sell) live in Access rules. UsageGate handles the backend. Do not build a ledger.

What you keep

  • Your login — Clerk or Supabase. End users never see UsageGate.
  • Your payment account — Stripe, Paystack, Paddle, or other. UsageGate is not a processor.
  • The check in the route — canAccess before the work, consume after.

FAQ

What is a check?

A check is canAccess — whether an end user may use a feature on this request. UsageGate answers that in the hot path.

Does Stripe enforce plan limits?

No. Stripe Billing meters invoice usage. They do not block a request. UsageGate enforces the plan table before the work runs.

Does the payment gateway matter?

No. Stripe can assign the paid plan, or you report the subscription from another gateway. UsageGate enforces the same three plans either way.

Next

Create a free account · Get started · Setup prompt