How do you build a product which has both free and pro plans?

Rutik Wankhade
7 replies
Hey makers, I need some guidance. How do you build a product which has both free and pro plans? How does that actually work under the hood with all the subscription, payment, and premium features? If anyone has built or had some resources to learn, please share.

Replies

anthonynsimon
Brewing products
For Panelbear I use a freemium model. All accounts start on a free plan, and can upgrade or downgrade anytime via the billing dashboard. That way no credit card is needed to sign up. This is how it looks under the hood: - You sign up, a Stripe customer with no payment details is created and on my DB I set the current plan to "free". - In case you upgrade, I redirect you to Stripe Checkout, where you can add payment details and complete the transaction. - Once you complete a plan change, Stripe sends my API a webhook with the details. I update my DB to reflect your new plan (eg. "pro" or "business"). By keeping the info I need on my app DB, I don't need to query Stripe's API all the time. I just have to keep it in sync using web hooks whenever something changes. In terms of functionality, whenever you interact with the app, I load a user context on every request which includes your current plan and features enabled / limits. I wrote some code examples here: https://anthonynsimon.com/blog/o...
Share
Rutik Wankhade
🚀 Building side projects
@anthony_n_simon This is exactly what I needed. I am more clear about what to do now. Thank you so much! 🙌 Also the blog is really helpful.
Share
anthonynsimon
Brewing products
@rutikwankhade Happy to help 👍
Alexander Thiele
Techi 📱 SaaS Startup @LinkFive 🥳
Hey Rutik, if you want to integrate a free and a pro plan into a native mobile app, then i would load the subscription status on every app start and see if the user has an active purchase and if yes, verify the purchase receipt and enable or disable features. You could also offer different plans of premiums by setting a subscription group name and then check if the group name is eligible for the current feature. It's similar to the web approach with the difference that you need to contact google play or apple app store. There are also services to cover everything out of the box. Hope this helps. Wish you all the best
Share
Rutik Wankhade
🚀 Building side projects
@athiele_ Thank you for sharing! 👍
Derek Duban
Programmer with big projects
Hi. I interpreted your question a bit different from the answers currently listed, so I'll give you my answer to my interpretation. I will be selling an animation studio. Originally it was going to be on or off with a free trial period. But it was strongly suggested I do the usual 3-tiers. I painstakingly chose to split animation functionality between interactive and non-interactive (can make games, cannot make games), but then I still needed a further division for the most basic tier. I decided to just remove some commands. To the user this means they may not have access to all the animation templates. Under the hood, it works pretty much as the others described. I'm still not 100% happy with this. I still think about finding another solution or ditching tiers altogether - I did, after all, force them in - they aren't really a natural division in the product functionality.
Share
Derek Duban
Programmer with big projects
Wow, has it been 2 months already since I wrote that? Times have changed. I've changed the tool from a WordPress plugin to an SaaS which just went online publicly yesterday, https://canvaslanguage.com/studio it is still beta and the paid portion isn't in yet as I'm hoping to collect survey responses and friendly users to help flush it out. Survey on the Pro* tab. But, in rough terms, the Pro/Paid subscription will allow greater control over the format of the animation downloads. The target users are web design companies who will be experts in need of the details like this. As opposed to the original WordPress plugin, this implementation is about 10X simpler and extends the potential audience significantly.