Overview:
Autumn is an open-source billing layer that sits between Stripe and your application. It abstracts complex billing logic so you can implement any pricing model—such as subscriptions, credit systems, usage-based models, or custom plans—without handling webhooks, upgrades, downgrades, cancellations, or payment failures. Developers integrate it with just a few lines of code, making it suitable for teams that want to iterate on pricing without rebuilding internal billing flows or managing database migrations.
Core Features:
Any pricing model: Supports subscriptions, credit systems & top-ups, usage-based overages, and custom plans for large customers.
Minimal integration surface: Billing logic is implemented through three functions:
/attach(purchase flows),/check(verify access to a product/feature/usage), and/track(record usage events).Usage and overage management: Set real-time usage limits, choose when they reset, and charge users when they exceed limits.
Credit system: Allow users to access monetary or arbitrary credits that multiple features can draw from.
Seat-based billing: Bill customers per seat (or per other entity) with per-seat limits.
Decoupled billing and app logic: Products and plans are created via a dashboard, so pricing changes do not require app code changes or database schema migrations.
Use Cases:
SaaS developers who want to offer subscription and usage-based billing without building and maintaining Stripe webhook handling, upgrade/downgrade logic, or cancellation workflows.
Growing companies that need to experiment with pricing—raising prices, introducing credits, or charging for a new feature—without performing database migrations or rebuilding in-app flows.
Teams managing custom pricing for large customers, including grandfathering users on old pricing and maintaining internal dashboards for non-standard plans.
Why It Matters:
Autumn decouples billing infrastructure from application code, so pricing logic can be modified through a dashboard instead of through code changes or database migrations. It reduces the complexity of handling Stripe webhooks, usage metering, upgrades, downgrades, cancellations, and payment-failure states. By providing a small set of functions (/attach, /check, /track), it offers a transparent, developer-friendly way to embed any pricing model while keeping the billing layer maintainable and separate from the core application.




