←back to thread

139 points ayushrodrigues | 2 comments | | HN request time: 0.417s | source

Hey HN, I’m Ayush from Autumn (https://useautumn.com/). Autumn is an open source layer over Stripe that decouples pricing and billing logic from your application. We let you efficiently manage pricing plans, feature permissions, and payments, regardless of the pricing model being used. It’s a bit like if Supabase and Stripe had a baby.

Typically, you have to write code to handle checkouts, upgrades/downgrades, failed payments, then receive webhooks to provision features, reset usage limits etc. We abstract this into one function call for all payments flows (checkouts, upgrades, downgrades etc), one function to record usage (so we can track usage limits), and a customer state React hook you can access from your frontend (to handle paywalls, display usage data etc).

Here’s a demo: https://www.youtube.com/watch?v=SFARthC7JXc

Stripe’s great! But there are 2 main reasons people use Autumn over a direct Stripe setup:

(1) Billing infra can get complex. After payments, there’s still handling webhooks, permission management, metering, usage resets, and connecting them all to upgrade, downgrade, cancellation and failed payments states.

(2) Growing companies iterate on pricing often: raising prices, experimenting with credits or charging for new features, etc. We save you from having to handle usage-based limits (super common in pricing today), rebuilding in-app flows, DB migrations, internal dashboards for custom pricing, and grandfathering users on different pricing.

Ripping out billing flows etc, really sucks. With Autumn, you just make pricing changes in our UI and it all auto-updates. We have a shadcn/ui component library that helps with this.

Because we support a lot of different pricing models (subscriptions, usage, credits, seat based etc), we have to handle a lot of different scenarios and cases under the hood. We try to keep setup simple while maintaining flexibility of a native integration. Here’s a little snippet of the architecture of our main endpoint: https://useautumn.com/blog/attach

Currently, the users who get the most value out of us are founders that need to move fast and keep things flexible, but also new/non-technical devs that are more AI native.

You can clone the project and explore the repo, or try it out at https://useautumn.com/, where it’s free for builders. Our repo is https://github.com/useautumn/autumn, docs are at https://docs.useautumn.com/ and demo at https://www.youtube.com/watch?v=SFARthC7JXc

We’d love to hear your feedback and how we could make it better!

1. buzer ◴[] No.44374807[source]
From what I could gather from quick look this seems to targeted towards B2C applications, i.e. 1 customer has 1 user. In B2B cases there is often cases with "customer has entitlement to feature X, but only users A & B can use it, C cannot" (and in some cases users have access to multiple customers). Are you planning on adding this kind of support and are you planning on handling the role/user mapping yourself or just providing some integration points?

(just to be clear, not relevant in my case at this point, just something that was a bit messy to handle in something I worked with previously)

replies(1): >>44374984 #
2. ayushr1 ◴[] No.44374984[source]
Yes! This actually extends beyond the concept of users. Eg people have similar problems when provisioning different access levels to different workspaces, or different compute instances. We use a concept called “entities” to handle this, where each entity is a sub account that lives under a customer. Each entity can they have its own set of features, meters and even subscriptions.

Connecting this all to auth systems is still a flow we’re hoping to make cleaner. It’s in early stages for now.