Expo + Supabase + RevenueCat Boilerplate

Ship a subscription app to both stores. Expo ~54 for builds, Supabase for auth and data, RevenueCat for billing. The billing stack that actually works in production.

Stack/Expo + Supabase + RevenueCat Boilerplate

Starter Kit

Expo + Supabase + RevenueCat Boilerplate

Subscription app stack: Expo + Supabase + RevenueCat. Auth, billing, store submission — pre-wired.

Expo ~54SupabaseRevenueCatTypeScript

The Billing Stack

Expo ~54 for mobile builds. Supabase for auth and database. RevenueCat for subscriptions and in-app purchases.

This is the stack I settled on after trying three other approaches. Stripe doesn't work for iOS digital goods (Apple's rules). Manual StoreKit + Google Play Billing took 28 hours to implement. RevenueCat abstracts both into one SDK.

Why RevenueCat Over Manual Billing

I tried implementing StoreKit 2 and Google Play Billing directly. Here's what happened:

  • Week 1: Got iOS purchases working in sandbox.
  • Week 2: Got Android purchases working. Broke iOS in the process.
  • Week 3: Receipt validation on the server. Edge cases everywhere.
  • Week 4: Gave up and switched to RevenueCat. Working on both platforms in 2 hours.

28 hours of manual work → 2 hours with RevenueCat. That math is obvious.

What's Pre-Configured

Component What's Done
RevenueCat SDK Installed, API keys configured
Entitlement checks Custom hook for gating features
Paywall UI Customizable template
Subscription products Monthly + Annual templates
Restore purchases Automatic
Server validation RevenueCat webhooks → Supabase

How Auth and Billing Connect

User signs up (Supabase Auth)
    → Supabase user ID synced to RevenueCat
    → User purchases subscription (RevenueCat)
    → Entitlement updated in RevenueCat
    → App checks entitlement via hook
    → Feature access granted/denied

The Supabase user ID is the single source of identity. RevenueCat tracks what they've paid for. The app checks RevenueCat for access. Clean separation.

The Revenue Numbers

Across 4 apps shipped with this stack:

  • Average time from idea to first paying user: 12 days
  • Subscription conversion rate: 4.2% (free trial → paid)
  • Zero billing-related App Store rejections

Related

Best for

Subscription app buildersSaaS-on-mobile foundersIndie hackers monetizing apps

Get this stack today.

One-time purchase. Full-stack boilerplate + 11 AI agents. No subscription.

AI App FactoryStackExpo + Supabase + RevenueCat Boilerplate