In-App Subscription with RevenueCat (iOS + Server Gate)

Full-stack RevenueCat subscription system — ASC product setup, RC dashboard wiring, iOS SDK integration (identity-synced appUserID, entitlement stream, paywall), server-side entitlement gate with webhook-driven source of truth, plus a battle-tested debugging playbook for never-published apps (StoreKit Configuration local testing without certificate upload)

Pro
Included in ShipSwift Pro: $89 a year, or $199 for life.
Get Pro

Copies a short instruction with your private download link. Paste it into your agent: it downloads the whole skill (the source code, the setup steps and the mistakes we already made for you) and builds the screen.

Works with

+70

What it does

End-to-end RevenueCat integration for a subscription + lifetime product mix, with the server (not the client) as the real gate for member-only features. Crucially, it encodes the debugging playbook for a first-launch app: how to test purchases before the app has ever been published, which errors are false alarms, and which official docs are stale. Battle-tested on Spotby (2026-07-30, RC SDK v5 / StoreKit 2 / Hono on Cloudflare Workers + Supabase).

What you get

  • ✓102 lines of source code, ready to paste
  • ✓Architecture
  • ✓App Store Connect Setup
  • ✓RevenueCat Dashboard
  • ✓iOS Integration (RC SDK v5, SwiftUI)
  • ✓Server Gate (Hono on Workers + Supabase shown; any stack works)
  • ✓Debugging Playbook (the part that saves you a day)
  • ✓Integration Checklist
  • ✓Known Pitfalls
subscriptionRevenueCatin-app purchasepaywallmonetizationentitlementwebhookStoreKit testingsandboxAPI v2transferapp version

Architecture

  • appUserID = your business user id (e.g. Supabase uid). Configure once at app init; logIn/logOut on auth changes. Server-side entitlement lookups then share the same axis.
  • Webhook as trigger, not as state: on any RC event, re-fetch the subscriber from RC and overwrite the row. Immune to event ordering.
  • Gate on the server: client paywall is guidance only. The member-only route checks the table first (zero external calls on the hot path), falls back to RC API once on miss, and applies a grace rule on RC outages.

More in Paywall and payments

A classic paywall: perks up top, monthly or yearly below, with the saving called out.
Classic plan picker
Pro
A classic paywall: perks up top, monthly or yearly below, with the saving called out.
A free-trial timeline that shows today, the reminder day and the charge date.
Free-trial timeline
Pro
A free-trial timeline that shows today, the reminder day and the charge date.
A photo header with a checklist of perks and a trial on the yearly plan.
Photo header
Pro
A photo header with a checklist of perks and a trial on the yearly plan.
A full-bleed hero with ratings and a glowing call to action that changes with the plan.
Full-bleed hero
Pro
A full-bleed hero with ratings and a glowing call to action that changes with the plan.
A quiet editorial paywall with monthly, quarterly and yearly plans.
Editorial
Pro
A quiet editorial paywall with monthly, quarterly and yearly plans.
Sliding reviews above three plan cards, including a one-time lifetime unlock.
Reviews and plan cards
Pro
Sliding reviews above three plan cards, including a one-time lifetime unlock.
A one-time purchase: pay once, keep every pro feature forever, no subscription.
Lifetime unlock
Pro
A one-time purchase: pay once, keep every pro feature forever, no subscription.
Credit packs for pay-as-you-go features, with the best value marked.
Credit packs
Pro
Credit packs for pay-as-you-go features, with the best value marked.
Two tiers side by side: switch between Plus and Pro and the perks and prices follow.
Two tiers
Pro
Two tiers side by side: switch between Plus and Pro and the perks and prices follow.
A win-back offer: half off the first year, with a live countdown.
Win-back offer
Pro
A win-back offer: half off the first year, with a live countdown.
A free-versus-Pro comparison table with a monthly and yearly switch.
Free vs Pro table
Pro
A free-versus-Pro comparison table with a monthly and yearly switch.