Cross-Platform Subscription Management with RevenueCat in Tuplet

Deterministic, Inc.

RevenueCat is a subscription management platform that sits between your app and the app stores (App Store, Google Play). It abstracts away the nuances of each store’s receipt verification, subscription status tracking, and entitlement management behind a single SDK — letting you write your purchase and subscription logic once per platform rather than wrestling with StoreKit and Play Billing APIs separately.

Tuplet, a band management app for iOS and Android, we use RevenueCat as the core of our subscription system. This post covers how we integrated it across our three-tier stack: iOS, Android, and our Backend for Frontend (BFF).

What RevenueCat Handles for Us

RevenueCat provides a few critical capabilities:

  • Entitlements — A boolean-based access model. We define a single "premium" entitlement. If a user’s RevenueCat CustomerInfo says that entitlement is active, they have Pro access. No need to parse store receipts or manage expiration dates ourselves.
  • Offerings — The products you present to users (monthly, annual). We pull these dynamically from RevenueCat instead of hardcoding product IDs.
  • Webhooks — RevenueCat sends lifecycle events (initial purchase, renewal, cancellation, refund) to our backend via webhooks, keeping our server-side records in sync without polling.
  • Cross-platform identity — A single subscriber ID maps to purchases on both stores. If a user buys on iOS and logs into Android, RevenueCat recognizes them as the same subscriber.