Kick-start your billing integration.
Start from working FastAPI, Stripe, Supabase, and Next.js source code you own and adapt.
Skip three months of Stripe integration headaches.
No more navigating scattered docs to glue checkout, webhooks, upgrades, and access together.
Storefront
Next.js
- Catalog
- Checkout
- Account
API
FastAPI
- Pricing
- Upgrades
- Access
Providers
Stripe + Supabase
- Payments
- Identity
- Queue
For technical founders and small SaaS teams
Stripe runs the billing. EasyRebill makes it work inside your product.
Stripe gives you excellent billing infrastructure. EasyRebill is the application layer around it: the source code and decisions that connect billing to customers, product access, workers, and tests.
If a Payment Link is enough, use Stripe directly. If billing must behave like part of your product, start here.
The billing platform
Stripe provides the primitives.
- Checkout and the Payment Element
- Subscriptions, invoices, and payments
- Billing lifecycle events and customer portal
The reference implementation
EasyRebill connects the product.
- Pricing, checkout, upgrades, and product access
- Verified webhooks, queue worker, and local projection
- FastAPI modules, dependency injection, and TestKit
Why Payment Element
Control the checkout journey, not just the payment form.
EasyRebill ships an embedded Stripe Payment Element flow. You own every step around Stripe's secure fields while the primary checkout stays inside your product.
Control the complete journey
Choose the step order, guest or signed-in path, fields, validation, and post-payment handoff.
Add upsells and offers
Place add-ons, annual-plan switches, upgrade paths, trials, and targeted promotions before payment.
Join payment to the account
Combine sign-up, terms acceptance, customer data, and product access in one cohesive workflow.
Measure and improve
Own analytics, attribution, A/B tests, abandonment signals, and conversion experiments around checkout.
A complete reference, end to end.
The essential subscription path is already connected, documented, and covered by focused tests.
Checkout
Embedded Stripe subscription checkout for guests and signed-in customers.
Pricing
YAML-defined products, recurring listings, introductory pricing, and renewal pricing.
Upgrades
Upgrade previews, unused-time credits, immediate prorated upgrades, and idempotency.
Access
Product grants, inherited access across upgrade paths, and per-customer resolution.
Reliability
Signed webhooks, durable queue processing, retries, and a local subscription projection.
Frontend
Generated TypeScript client and a working Next.js + Stripe Elements storefront.
Bounded Software Architecture
Built to keep complexity and coding agents at bay.
EasyRebill is application code, not another billing abstraction. Its domains, dependencies, and provider boundaries stay visible. Explicit ownership keeps coding agents inside the relevant neighborhood instead of roaming across unrelated modules.
A smaller search space for developers and coding agents.
Bounded Software Architecture is a heuristic: keep code that changes together physically close, and make dependencies predictable. From one model or module, people and agents can find the relevant dependencies, importers, and implementations without reconstructing the whole application graph.
Not a framework. Not a universal layering system.
Start at one module
Name the behavior and its owner.
Follow owners and imports
Expand through explicit public surfaces.
Stop at the boundary
Avoid unrelated branches and hidden coupling.
Your go-to FastAPI reference as the application grows.
Start with a focused API without painting yourself into a corner. FastAPI routes are one entry point into the same typed application behavior used by background workers and CLI commands. As the product grows, the composition root, explicit boundaries, and TestKit keep new workflows testable and easy to reason about.
The repository tells coding agents how to work in it.
A versioned operating guide maps domain ownership, allowed import directions, dependency-injection seams, testing conventions, and the exact checks to run before handing work back.
Architecture map
Boundary rules
TestKit seams
Verification commands