← Back to Blog
Payments & Subscriptions2 min read

Subscriptions Are More Than a Paywall Button

When I first thought about adding subscriptions to an app, I imagined the visible part: show a paywall, let the user choose a plan and unlock the premium features after payment.

That is only the front of the system.

The more important question is what happens afterwards. A subscription can renew, expire, be cancelled, fail to renew, be restored on another device or change outside the application entirely. The app therefore needs some reliable way to know what the user is currently entitled to.

I started looking at RevenueCat because it sits between the application and the app-store subscription systems and gives the app a simpler way to ask a useful question: does this user currently have access to this entitlement?

That is a much better model than storing something like:

premium = true

in my own database after someone presses the purchase button.

That boolean could become wrong almost immediately. A subscription might expire next month, the user might cancel it through Apple, or they might reinstall the app and restore the purchase. My database does not automatically know about any of that.

The subscription platform and the App Store are therefore part of the source of truth. My application can react to that state, but it should not simply invent its own permanent version of it.

This also changed how I think about the paywall itself. The screen is just the user interface for a much larger lifecycle:

purchase → entitlement → renewal → cancellation or expiration → possible restoration

The code for displaying a premium screen is easy. Keeping access correct over time is the real feature.

For a small app, using a service such as RevenueCat feels much more sensible to me than trying to reproduce the entire subscription lifecycle myself. I still need to understand the states and decide what they mean for my product, but I do not need to build all of the infrastructure underneath them.

That is probably the biggest lesson so far: with payments, the successful purchase is not the end of the flow. It is the beginning of a state that has to remain correct afterwards.

Topics

subscriptionsentitlementsmobile apps