
Build
Paywall
Decide where you ask for money, what the paywall says and what it costs, then wire it to RevenueCat.
The paywall is the screen that earns your money, so it gets its own chapter before onboarding. Free app? Skip to Onboarding.

Build
Decide where you ask for money, what the paywall says and what it costs, then wire it to RevenueCat.
The paywall is the screen that earns your money, so it gets its own chapter before onboarding. Free app? Skip to Onboarding.
A paywall is the screen that asks people to pay, usually to unlock a Pro version of your app. A soft paywall can be closed, a hard one can't. Where it sits, what it says and what it costs decide most of what your app earns.
What goes on it
Trial and price
App Review
No users yet? Answer two questions and you have your paywall. A soft paywall can be closed, a hard one can't. Both come after the first win.
Then pick a purchase tool. It handles buying, trials and restores for you.
First, swap Expo Go for a development build. Expo Go only holds the packages Expo put in it. Purchases need RevenueCat's own phone code, so from here you run your own version of Expo Go, built once by EAS. You still start it with npx expo start, and code changes still show up at once. Rebuild only when you add another package with phone code.
npx expo install expo-dev-client eas device:create eas build --profile development --platform all
On an iPhone this needs the Apple Developer Program ($99 a year), since Apple only lets signed builds onto a phone. Join it now, as the first step of Ship shows: approval takes a day or two, and you need it to launch anyway. Android works free with just your Expo account. eas device:create registers your iPhone once, so it may install the build. When the build is done, open its link on your phone, install it, then run npx expo start and scan the code as before.
Build the paywall and its purchases in one go. Look at real paywalls on ScreensDesign ↗ first. You don't need Apple yet: RevenueCat's Test Store ↗ key gives real-looking test purchases in development. Never ship that key.
Add RevenueCat following RevenueCat's Expo guide, with the Test Store API key from .env in development only: an entitlement called pro and one offering with an annual and a monthly package. Then build a paywall screen in our theme that reads that offering: a headline about [what the user just hit], three short bullets of what Pro gives, annual picked and monthly below it, a trial timeline if there's a trial, one big Continue button, "No commitment, cancel anytime" under it, a close button that works on the first tap, and Restore purchases at the bottom.
Our favorite tools