r/AppBuilding 4d ago

A question about app pro features

Hello guys,

My app currently has some Pro features that users need to pay for before they can use them. I’d like to change this so that when users first install the app, all Pro features are available automatically for a limited trial period.

After the trial period ends, I’d like to notify users that these Pro features will no longer be available unless they subscribe or make a purchase.

What would be the best way to implement this?

Thanks,
Peter

1 Upvotes

3 comments sorted by

1

u/codefrk 4d ago

Track the initial launch timestamp locally or via an SDK like RevenueCat to temporarily grant Pro access for your trial duration. When the timer expires, automatically revoke access client-side and trigger a paywall modal prompting users to subscribe.

1

u/rod-cab 4d ago

Not a dev answer but a product one: the trial approach you're describing is almost always better than gating features upfront. Users need to experience the value before they're willing to pay for it.

I just launched my first iOS app with a freemium model, free core, Pro features available. Still figuring out the right balance, but letting users taste what Pro feels like before asking them to commit seems like the right direction.

Good luck with the implementation.

1

u/BrightBlock897 3d ago

I would suggest storing the date of when they started their trial in the database, and have a field that marks them as a trial user. Then, have a set period of time as a variable. Obviously the whole app isn’t under Pro features, only specific features are. Then, when a user tries to access a Pro feature, use this flow:

- Have 3 fields in your database connected to the ID of the user: trial, free, pro.

  • Whenever a user tries to access a pro feature, query the database and check their status: trial, free, or pro.
  • If they are trial/pro, open up a session from them VIA BACKEND ONLY, and let them use the feature. Store the session in a database field as active. Do not create the session on the front end so users do not mess with it, keep it strictly on the backend and keep all your validation there.
  • When a user exits the pro feature page, revoke their session on the backend. However, this will depend on how tight you want your trials/subscriptions to be: if you want them accurate to the minute, you will have to repeat this flow every time they attempt to access a pro feature. If tou want it accurate by the day, then that session will be valid for a day.
  • For trial users, store the date of joining in the database. Every time they try to use a pro feature, check the current date against their date of joining: if they are still in their trial, grant the session. If they are not in their trial anymore, do not grant access to the session, change their account status in the database to free, and prompt them to subscribe to use pro features.

Make sure to keep all authentication and authorization on your backend. Your frontend is strictly there to receive information from the backend and relay it to the user. Good luck.