Marcelo

Introducing the Experiwall SDK for Expo and React Native

Our first native SDK is here. Add remote paywalls to your Expo or React Native app with a few lines of code — no app update required to change designs.

Today we're releasing @experiwall/react-native, our first native SDK. If you're building a subscription app with Expo or React Native, you can now design paywalls in the Experiwall dashboard and render them natively in your app — without shipping an app update every time you want to tweak copy, pricing, or layout.

The problem is familiar to every mobile developer. You spend days building a paywall screen, ship it, realize the headline isn't converting, and then wait a week for App Store review to push a fix. Meanwhile you're bleeding revenue. Experiwall decouples your paywall design from your app binary, so changes go live instantly.

Getting started takes three steps. Install the package with npm install @experiwall/react-native, wrap your app with ExperiwallProvider passing your public API key, and drop a PaywallModal component wherever you want to trigger the upgrade flow. The SDK fetches your published paywall config on launch, caches it locally, and renders it natively using React Native views — no WebView involved.

Purchase handling is pluggable. We ship adapters for RevenueCat and Expo In-App Purchases out of the box, and you can wire up any custom IAP logic with the callback handler. The SDK handles the full purchase flow: presenting the paywall, triggering the store purchase, and tracking whether it succeeded, failed, or was cancelled.

Analytics are built in. Every impression, tap, purchase attempt, and dismissal is automatically tracked and sent to the Experiwall API. You can see conversion rates per paywall variant in the dashboard and run A/B experiments to find what works best for your audience.

The rendering system supports the full set of components from the visual editor — stacks with vertical, horizontal, and layered layouts, text with dynamic Liquid templates like {{ product.price }} and {{ product.daily_price }}, images, buttons with configurable tap actions, and icons via react-native-svg. Your paywall looks exactly like you designed it in the dashboard.

Caching is handled automatically. The SDK uses AsyncStorage with a cache-first strategy so your paywall appears instantly on repeat launches, even if the network is slow. Fresh configs are fetched in the background and applied on the next mount.

This is a v0.1 release and we're actively iterating. We'd love feedback from early adopters — what purchase providers you'd like to see supported, what components you need, and how the integration experience feels. You can find the full documentation and API reference in the SDK README on GitHub.

To get started, generate a public API key from your project settings in the Experiwall dashboard and install the package. If you don't have an Experiwall account yet, sign up for free during early access and start building your first remote paywall today.

Ready to optimize your paywalls?

Start running experiments with Experiwall — free during early access.

Get Started Free