react-brain
Browse decisions
React & language foundations 3App architecture 9UI 12Platform & native 9Build, test, observe, secure 6AI in React apps 3stack composerdecision recordscensusstaleness bencharchitecturechangelogmethodologyroadmap

entriesplatform-native · verified 2026-06-25 · react-native

In-app purchases & payments

draftedconfidence: mediumthis tier holds 50% on the public scorecard (3/19 graded · 0 overturned) →

recommendation

Subscriptions → RevenueCat (it absorbs receipt validation + entitlement infra). Direct store billing without a third party → expo-iap (Expo) or react-native-iap.

  • small team, subscriptions, don't want a billing backend → RevenueCat
  • one-time purchases / avoid vendor fees → expo-iap / react-native-iap (you own validation)
  • wallet passes (tickets/loyalty/coupons) → react-native-wallet (set up an Apple Pass Type ID + entitlements; not tap-to-pay)

Options & tradeoffs

the field considered — and why each one isn’t the default here

optiontradeoffevidence
expo-iapOpenIAP-compliant IAP; Google Play Billing v8 / Apple StoreKit; avoids ejecting124k/wk
react-native-iaplong-standing community IAP wrapper; now deprecated/archived → folded into the OpenIAP monorepo, prefer expo-iap127k/wk
RevenueCathosted subscription infra + entitlements across stores; fees vs less server work770k/wk
react-native-walletApple PassKit / Google Wallet passes (tickets, loyalty, coupons) — NOT tap-to-pay; iOS needs a Pass Type ID + entitlements

evidence: npm weekly downloads (signals snapshot) · “ships in n/D” = adoption across the production-app census, honest denominators

npm weekly downloads (from the corpus's last signals run): react-native-purchases 770k · react-native-iap 127k · expo-iap 124k

Verified notes

Store rules + receipt validation make IAP testing-heavy; hosted options (RevenueCat) trade fees for less backend.

Canonical reading

Editorial annotations on why each piece matters — the articles themselves are the originals; read them there.

Cross-platform subscription state: sharing entitlements between Android and iOSJaewoong Eum (RevenueCat)

Why unifying subscription entitlements across iOS/Android is hard — Apple signed-JWS vs Google purchase-token REST, HTTPS notifications vs Cloud Pub/Sub, subscription groups vs base plans/offers — and the four-part DIY architecture. The root reason IAP libraries/services exist.

Building the RC Fortress: protecting payments against outagesRevenueCat Engineering

A resilience case study for keeping purchases working when subscription backends fail — cached paywall snapshots, temporary offline entitlements, buffered request log/replay — with tradeoffs made explicit. The realities of subscription infra regardless of library.

Sources

Related in platform-native: native · media · storage · native-ui · keyboard · brownfield · games · alt-frameworks