How to add RevenueCat subscriptions to a vibe-coded app
To sell subscriptions in an app built with Lovable, Base44, Replit, or another vibe-coding platform, you configure the subscription products in App Store Connect and Google Play Console, connect them through RevenueCat, and enable Median's RevenueCat plugin so the purchase capability ships inside your iOS and Android builds. Your web app then reads subscription status and entitlements through Median's JavaScript Bridge to gate premium features. The plugin is included on Median's Plus, Business, and Enterprise plans, and your app needs a new build after it is enabled.
If your app charges for anything digital, the app stores change how you get paid. A Stripe checkout that worked fine on your website is exactly the thing Apple rejects once the same product is sold inside an iOS app.
That is the situation most vibe coders hit right after the web to app conversion step: the web app works, the mobile app is built or close to it, and now monthly and yearly subscriptions need to work on both Google Play and the Apple App Store. The app came out of Lovable or Base44, so there is no purchase backend behind it, no receipt validation, and no way to check who paid.
RevenueCat is the path Median recommends for exactly this case, and this guide covers the whole setup: what the stores require, what the plugin does, how your web app reads subscription status, and when you need to rebuild.
Why RevenueCat fits a vibe-coded app
RevenueCat sits between your app and the store billing systems. Median's plugin includes its SDKs in your iOS and Android builds, and your web app works with one purchase API instead of two store implementations.
That matters more for a vibe-coded app than for most, because the pieces RevenueCat provides are the pieces an AI-built web app does not have:
Receipt validation, automatically, on both platforms. No backend to build.
Entitlements, so your web app asks "does this user have premium?" instead of decoding store receipts.
Subscription status that follows the user across devices and platforms.
A paywall you can edit from its dashboard without shipping a new build.
Revenue analytics such as MRR, churn, and trial conversion in one place.
The two-subscription setup that looks simple on day one grows offer codes, trials, and refund states quickly. Entitlements absorb that complexity so your Lovable or Base44 code stays a simple check: premium or not.
What Apple and Google require first
RevenueCat does not replace the store billing systems. It works on top of them, so the store setup still comes first.
Apple requires digital products and subscriptions sold inside an iOS app to go through In-App Purchases. Google Play requires Google Play Billing for digital goods, and the billing permission has to be part of the Android build itself. In both stores, the products live in the consoles:
Subscriptions and pricing are configured in App Store Connect for iOS.
The same products are configured in Google Play Console for Android.
Renewal periods and trial offers live in those consoles, not in your web app.
Physical products and real-world services are the exception. Those can keep using your existing web checkout.
How to set up RevenueCat subscriptions in a Median app
Create your app records in App Store Connect and Google Play Console.
Configure your subscription products in both consoles, for example a monthly and a yearly plan.
Register both apps in the RevenueCat dashboard with your iOS bundle ID and Android package name, import the products, and get your public API key.
Enable the RevenueCat plugin in the Median App Studio under Native Plugins. The plugin is included on Median's Plus, Business, and Enterprise plans.
Rebuild your app. The purchase capability and SDKs ship inside the binary, and the Android build picks up the Google Play Billing permission at this step.
Initialize purchases from your web app through the JavaScript Bridge, then test with sandbox accounts on real devices before submitting.
Business and Enterprise customers can ask Median's support team for help with the configuration.
Reading subscription status from your web app
Through Median's JavaScript Bridge, your web app can pass in your API key, fetch offerings, trigger a purchase, restore purchases, and present a paywall. Subscription status and entitlements are readable from the web side, which is what lets a Lovable or Base44 app gate premium features without native code.
The web app still needs a way to respond to that status, such as showing or hiding premium screens. That part is a prompt to your AI builder: check the entitlement, branch the UI. The store compliance, receipts, and renewal state all stay on the native side.
The rebuild rule
Enabling the plugin in the App Studio changes what goes into your next build, not the app already on your phone or in review. Plan to upload a new AAB to Google Play and a new iOS build to App Store Connect after subscriptions are added.
This catches people out in one specific way: the app gets approved first, subscriptions get added second, and the purchase flow silently does nothing in the store version because the live build predates the plugin. If subscriptions are part of the launch, add the plugin before the submission build.
Test your web app as a mobile app before you add subscriptions
Frequently asked questions
Does RevenueCat replace Apple and Google subscriptions?
No. It works on top of Apple and Google subscription products. You still create the products in App Store Connect and Google Play Console, and the stores still process the payments. What it manages is validation, entitlements, and status across platforms.
Can I collect payments in my app with Stripe instead?
Only for physical products and real-world services. Apple requires digitally delivered products and subscriptions to be purchased through In-App Purchases, and Google Play requires Google Play Billing for digital goods. Median's RevenueCat integration exists to make that compliance straightforward for a website to app build.
Can I use RevenueCat with a Lovable app converted to mobile?
Yes. Convert the Lovable app with Median, enable the plugin, and your Lovable code can read subscription status and entitlements through the JavaScript Bridge to gate premium features. The same applies to Base44, Replit, Vercel, and Netlify apps.
Does a Median app need a new build after RevenueCat is enabled?
Yes. The SDKs and the native purchase capability are compiled into the app, so expect to rebuild and upload a new AAB and a new iOS build after enabling the plugin. The Google Play Billing permission is part of the Android build as well.
Which Median plans include the RevenueCat plugin?
The plugin is included on the Plus plan and on the Business and Enterprise plans. Business and Enterprise customers can also ask Median's support team for help with the configuration.
Do subscriptions work on both Google Play and the Apple App Store?
Yes. Auto-renewable subscriptions work on both stores. The products are configured separately in each console, and RevenueCat presents them to your app as one offering.
What if my app already has its own billing backend?
Median also offers a native In-App Purchases plugin that talks directly to Apple StoreKit and Google Play Billing, which can fit apps with an existing billing system. For a vibe-coded app starting fresh, RevenueCat is the recommended path.
