Bubble's Stripe plugin doesn't seem to work

I think there’s a better solution for most apps than this or using option sets.

In my base app template, I have a couple of webhooks that mean subscriptions/products are all managed entirely in Stripe, rather than Bubble, as it’s easier than adding that in an admin panel. All you need is a product updated webhook, and a price updated webhook.

Product updated
Create a plan/product if it doesn’t already exist in the database.

You can use Stripe metadata to specify things like credit limits, whether the plan is active etc. So, if I add a metadata ‘creditLimit’ to the Stripe product and then change it, the change in credit limit will automatically be reflected in my app. Similarly, pricing tables search for all visible plans so that to archive a plan the client just needs to change active to no. ‘Highlighted’ can also be set which dictates whether it gets highlighted in pricing tables. Images, feature lists etc all automatically update too. If your app limits feature by plans, you may have a list of features as metadata so you can just do ‘Current user’s Plan contains (this feature)’.

Price updated
Similar kind of logic here, create a price if it doesn’t exist and then add it to the relevant plan/product. Stores the currency, the billing interval, the amount, and whether it’s active (purchaseable).

All updates on Stripe are auto-pushed to the correct version of the Bubble app with no additional config necessary. It just works, always, and doesn’t require pushing anything to live.