Skip to main content
RevenueCat is a subscription management platform that simplifies in-app purchases across iOS, Android, and web.

What’s Included

Launch includes a ready-to-use RevenueCat integration:
  • RevenueCat Provider - Context for subscription state
  • Native Paywall - Uses RevenueCat’s visual paywall builder
  • Entitlement Checking - useRevenueCat() hook
  • Restore Purchases - Built-in restore functionality

Why RevenueCat?

Native Paywalls

Design paywalls in RevenueCat’s dashboard — no code changes needed.

Cross-Platform

Sync subscriptions between iOS, Android, and web.

Analytics

Built-in dashboards for revenue and subscriber metrics.

A/B Testing

Test different paywalls and pricing without app updates.

How It Works

App Store Connect          RevenueCat               Your App
─────────────────         ──────────────           ─────────
  Products &       ──▶    Syncs products    ──▶    Fetches offerings
  Subscriptions           Manages entitlements     Shows paywall
                          Validates receipts       Checks access
  1. App Store Connect - Create your subscription products
  2. RevenueCat - Import products, create offerings, design paywalls
  3. Your App - Display paywall, check subscription status

Usage

Check Subscription Status

import { useRevenueCat } from "@/lib/payments/revenuecat";

function MyComponent() {
  const { isSubscribed, subscriptionStatus } = useRevenueCat();

  if (isSubscribed) {
    return <PremiumContent />;
  }
  return <UpgradePrompt />;
}
import { useRouter } from "expo-router";

function UpgradeButton() {
  const router = useRouter();

  return (
    <Button onPress={() => router.push("/payments/revenuecat")}>
      Upgrade to Pro
    </Button>
  );
}

File Structure

apps/mobile/lib/payments/
├── config.ts              # API keys and env helpers
├── revenuecat/
│   ├── provider.tsx       # RevenueCatProvider context
│   └── index.ts           # Exports
└── types.ts               # Shared types

apps/mobile/app/payments/
└── revenuecat.tsx         # Paywall screen (uses RevenueCat UI)

Test Checklist

  • Offerings load in the paywall
  • Sandbox purchase succeeds
  • Entitlement state updates in-app

Troubleshooting

See RevenueCat Troubleshooting.

Remove / Disable

To disable RevenueCat while you configure products, set: apps/mobile/features/feature-registry.tsxfeatureFlags.payments = false For production removal guidance, see Removing Features.

Next Steps