ReadyNative

Payments

Payments for an Expo app, compared: RevenueCat, Adapty, Stripe Checkout, or none - Expo Go support and what each option installs.

Pro

Hey - here's how payments work in ReadyNative.

This category owns selling: the /paywall modal, the entitlement check you gate features on, and the Restore action the stores require you to offer.

@/lib/payments always exists, whichever option you pick: payments.useEntitlements(), payments.presentPaywall?.() and payments.restorePurchases() read the same in every one of them, and payments/none is a no-op that reports no entitlements. Screens you write against the shim keep working when you switch options.

Pick RevenueCat for the default path to store subscriptions - it handles StoreKit and Play Billing, and its remote paywalls can be edited without shipping an update. Pick Adapty if the no-code Paywall Builder and A/B tests on placements are what you want to iterate on; it's the same store billing underneath. Pick Stripe if you're selling to the web too, or if what you sell isn't digital goods that Apple and Google require in-app purchase for - it runs on hosted Checkout in the system browser, needs backend/api-routes, and is the one option that works in Expo Go.

This category is part of ReadyNative Pro.

Options

One option per category - --payments <option> picks it:

bun run setup --payments revenuecat
OptionLabelExpo GoHint
revenuecatRevenueCat (default)no - dev build requiredin-app subscriptions + paywall · dev build required (no Expo Go)
adaptyAdaptyno - dev build requiredin-app subscriptions + Paywall Builder · dev build required (no Expo Go)
stripeStripe Checkoutyesweb checkout via API routes (no native SDK) · Expo Go OK
noneNo paymentsyespayments.useEntitlements() shim returns none

On this page

Get ReadyNative