// the find
RevenueCat/react-native-purchases
React Native in-app purchases and subscriptions made easy. Support for iOS, Android and web.
Official RevenueCat SDK for React Native — wraps StoreKit, Google Play Billing, and RevenueCat's own web billing into a single JS interface. It's a client library for a paid SaaS backend, not a standalone IAP solution. You need a RevenueCat account; the SDK is the thin end of their funnel.
The cross-platform abstraction is genuinely useful — one API call covers iOS, Android, and web without you touching StoreKit or Play Billing directly. TypeScript types are thorough and there's an `apitesters/` directory that compiles type-checks against the public API surface, which catches breaking changes early. Expo support is first-class, including a Preview API Mode in Expo Go that mocks native calls so you can develop without a dev build. The Maestro e2e test setup is a good sign — they're testing actual purchase flows on device, not just unit-testing the JS layer.
You're taking a hard dependency on RevenueCat's backend for every subscription check — if their service is down, your app can't verify entitlements. The Android native module is still in Java (RNPurchasesModule.java) with a single Kotlin converter file; a mixed-language Android module is more maintenance surface than it should be in 2026. The SDK requires RN 0.73+ which will block older projects, and there's no documented offline/grace-period behavior, so you're flying blind on what happens when a user has no connectivity at subscription validation time. At 1.1k stars for an official SDK from a well-funded company, adoption is lower than you'd expect, which suggests the community is either using the Expo module directly or paying for RevenueCat without caring about the OSS wrapper.