Learn more about RevenueCat and talk about it with the community.
Recently active
First of all, thank you to everyone who reached out to let us know RevenueCat was added to a popular ad block list! Because of your messages, we were able to quickly make sense of some customer support questions and start taking action. So, what’s the situation?The RevenueCat domain was added to a community-shared list of domains that are imported by popular ad blocking tools like AdAway and Pi-hole. This means anyone using these tools is unable to access RevenueCat functionality. More specifically, developers and teams using RevenueCat won’t be able to access the RevenueCat dashboard. And with regards to app end users, app purchases can’t sync with RevenueCat and thus won’t allow for entitlements to unlock or for purchases to be properly reflected in dashboard metrics.In other words, RevenueCat won’t work at all for these users. Why was RevenueCat added to this list?The short answer is “we don’t know.” It seems to be a misunderstanding of what RevenueCat does, although we’ve explained
Hi! I’m Jacob, recovering iOS engineer and CEO of RevenueCat. It’s still a bit mind boggling how many folks are using our little SDK these days, and I’m excited that we have an open community to chat about it. I’d love to hear your product and company feedback. I don’t get to spend nearly enough time with developers using our product day-to-day and would love to hear what direction you think we should take the SDK, the dashboard, and ultimately the company. We are here to help you make more money with your apps, so tell us what you need! P.S. I’m thinking about making an app. Can you still make apps in Objective-C?
Hi everyone,I’m Andrew, the developer behind FastHook, a workflow automation platform. We’ve just added a RevenueCat integration to help connect subscription events with the other tools you use.Build workflows across your appsUse RevenueCat events—such as purchases, renewals, cancellations, and expirations—to start a workflow, filter the events you care about, and map their data into actions from other supported FastHook apps. You can build your own workflows in the visual editor; you’re not limited to the ready-made templates.The integration uses OAuth, so you can select the RevenueCat projects and permissions you grant without copying a secret API key into FastHook. It also includes RevenueCat actions for working with customer records and reading subscription and purchase information.Two ready-made templates to get startedGoogle Sheets: keep a log of subscription events. The first event automatically creates the spreadsheet and its columns; later events add rows to the same file. No
I’m Tim, the developer of Cadence. It creates a course from a topic and setup answers, with lessons and practice in the mobile app. RevenueCat support pointed me here as an appropriate place to ask other builders for feedback.After looking at https://learningcadence.app/, what would you expect the app to help you learn? If you choose to try it, does setting up a course match that expectation? A specific confusing phrase or screen would be useful. Trying it is optional.
One thing we're exploring with OtterTally is making subscription revenue easier to monitor without jumping between Stripe and RevenueCat.We're opening our macOS beta tomorrow and want feedback from founders who actually work with these tools.If you run a subscription app, I'd love to know: how do you currently monitor your revenue across platforms?If OtterTally fits your workflow, I'm happy to share early access.I'd especially appreciate feedback on what would make this genuinely useful in your daily workflow.
If your app has an AI feature behind a RevenueCat subscription, you probably have flat revenue per user and a variable AI cost per user. A light user costs cents; a heavy user (or one stuck in an agent loop) can cost more than they pay. The AI invoice shows tokens, RevenueCat shows revenue, and nothing joins them per user. Disclosure: I built a small open-source tool for this, FiscaLLM (MIT). Sharing how it works in case the approach is useful, even if you build your own. How it works:1. Your backend reports usage after each AI call (model name and token counts only, never prompts or answers), keyed by your RevenueCat app user ID.2. A RevenueCat webhook reports payments, and RevenueCat aliases are resolved so anonymous and logged-in IDs merge into one user.3. You see margin per user, per plan and per free trial, plus which model or feature drives the bill, with budget alerts (email, Slack, webhook) and optional spend caps. Two things I learned the hard way: use the same ID for RevenueC
Hi everyone! 👋I’ve submitted my project Video Origin Analyzer for the RevenueCat Shipathon 2026, and my Devpost submission is showing as Submitted.Before I consider it final, could someone please review my submission and let me know if I’ve missed any important Shipathon requirements or guidelines?I’d really appreciate any feedback or suggestions. 🙌Thanks!
Built something to solve my own headache, sharing in case it's useful to anyone else here.Every month I'd look at Meta's reported ROAS and RevenueCat's actual revenue and they'd tell two different stories. Trial starts counted as wins, refunds never subtracted, and by the time I noticed a campaign was actually losing money I'd already spent another few weeks on it.So I built Sourceline. Connects to your RevenueCat account (read only, 5 min setup) and shows real ROAS per channel and campaign, churn adjusted, after refunds, not the inflated platform number. Only supports Meta for ad spend right now. Not live yet, still collecting emails for early access, it will likely be free while it's in beta. If you're running paid UA off RevenueCat and want in once itopens up, link's in my profile, would genuinely love feedback either way.
I'm designing a live streaming app where users can subscribe to individual creators for $9.99/month. A user should be able to subscribe to multiple creators simultaneously (similar to Twitch or YouTube Channel Memberships), and each subscription should auto-renew independently.The challenge is scalability. We may eventually have 100k+ creators, so creating a separate App Store / Google Play subscription product for every creator doesn't seem practical.I recently came across Apple's Advanced Commerce API, which appears to address this for iOS, but I couldn't find an equivalent solution for Google Play.Has anyone built or researched a system like this?Specifically, I'm curious about: How do platforms like Twitch, Patreon, X, or YouTube implement creator-specific recurring subscriptions? What's the recommended architecture for supporting a very large number of creators? Is there a scalable Google Play equivalent to Apple's Advanced Commerce API, or is there another common pattern? I'd
For people building AI apps with subscriptions: how are you handling free/pro AI limits? Are you using a backend, Firebase/Supabase counters, RevenueCat entitlements, or just trusting the client?
Does RevenueCat Support Purchases in (X) Country?RevenueCat supports subscriptions and in-app purchases for any country that is supported by the app stores (Apple, Google, Amazon) and Stripe. What if my country is only partially supported?If you want to support in-app purchases in Bermuda, for example, RevenueCat will work for all users in Bermuda, and they can make purchases in the Apple App Store and Amazon Appstore, but not in the Google Play Store.If a Bermudian user purchases a subscription on an Apple device, they can still access their subscription on an Android device if you properly support cross-platform usage of RevenueCat. Stripe purchasesStripe works differently from the app stores. If you as a developer have a bank account in a supported country, then you can collect payments globally. So, in the table below, if a country does not have a √ for Stripe, that does not mean you cannot collect Stripe payments from users in that country. It simply means your bank account/busine
I am building an iOS app using: SwiftUI Firebase backend RevenueCat Apple In-App Purchases The goal of the referral system is:“Invite a friend, they get 50% off a premium lifetime purchase, and once they successfully purchase, you also get access to the same 50% discounted purchase.”Importantly: users NEVER get premium access directly from a custom code premium access is ALWAYS granted through Apple IAP / RevenueCat entitlement the question is mainly about the referral mechanics and App Store guidelines compliance Scenario A — Apple-native offer codes Use Apple Offer Codes generated through App Store Connect API Store/generated codes are managed on my backend User A invites User B User B receives an Apple offer code for 50% off User B redeems through Apple redemption flow and purchases through normal Apple IAP RevenueCat webhook confirms purchase Backend then unlocks another Apple offer code for User A User A can then redeem their own 50% Apple offer code Scenar
I registered three subscriptions in the Google Play Console: monthly, 3-month, and yearly.However, in the app I only receive one subscription — the monthly one. What could be causing this issue?
I have an existing app called RedBird: Cycle Nutrition and need help setting up and testing RevenueCat with Apple subscriptions. The app is already built, but the paywall is not appearing correctly and RevenueCat is showing iOS Error 23 / empty offerings. I need someone experienced with: - RevenueCat- App Store Connect subscriptions- iOS in-app purchases- TestFlight / sandbox testing- React Native / Capacitor mobile apps Scope: 1. Review App Store Connect subscription setup2. Review RevenueCat products, entitlements, offerings, and API keys3. Fix the app flow so the paywall appears after onboarding4. Make sure products load correctly5. Test on iPad/TestFlight6. Confirm purchase, restore purchases, and premium entitlement unlock7. Help prepare the app for Apple review This is a small urgent launch-blocking task. Please only apply if you have successfully set up RevenueCat for iOS subscriptions before.
We REALLY need this feature.I saw someone else posting about this as well, 8 MONTHS AGO.We really need to be able to run experiements based on our own custom attributes.I mean, what kind of development time would this be? You could have that feature ready in 1 day. I’m a dev myself, like most people here, and it is just silly this would take so much time to add.In the other thread you mentioned this is a “TOP PRIORITY”. But it has gone 8 months since that post.Please, get this done! Thank you.
Hey folks,I found myself reaching for my phone multiple times a day to check on my RevenueCat metrics. That’s why I built CatBar, a little utility that sits in your menubar and shows you all your RevenueCat metrics in the blink of an eye. Feel free to try it and leave feedback: https://www.catbar.app/
Dear dev team,I noticed that when I use one paywall for both web and android, the dark mode seems have some issue with render all background. Please see below:This is how it looks like in my browser: there are 2 big white sections besides the major section this is how I set it in paywall editor, I am not sure if I missed any settings
Hi, We're stuck in an App Store review loop (Guideline 2.1 - Information Needed) and looking for advice from others who may have faced this. The situation: 1. Apple reviewer logs in with our demo user and makes a Sandbox purchase 2. We provide a new demo user so they can test the paywall 3. When the reviewer logs in with the new demo user on the same device, the existing Sandbox subscription transfers over — because the reviewer's Sandbox Apple ID hasn't changed 4. Every new demo user immediately has an active subscription 5. Apple keeps rejecting with the same "we need a user with expired subscription" template Key insight: The Sandbox subscription is tied to the reviewer's Apple ID, not to our demo user. No matter how many new demo users we provide, as long as the reviewer uses the same device and Sandbox Apple ID — they will always have an active subscription. What we've tried: - Providing multiple demo users - Exp
Hi RevenueCat team,We’re using Virtual Currencies (beta) for an AI product, and we’ve hit an important gap that I think affects many AI businesses.For most AI subscription products, usage credits are modeled as a monthly allowance, even when the customer is on an annual plan. Today, RevenueCat grants currency on purchase/renewal (billing cycle), which means annual subscribers get all credits up front.That creates two major problems:We can’t natively do a monthly drip grant for annual plans (e.g., +X credits each month). We can’t natively do monthly expiration/reset of that monthly allowance within an annual subscription.Because of this, we had to build and maintain external scripts/webhooks to:Grant monthly credits to annual subscribers Remove/expire prior month’s credits (non-rollover policy)This is fragile and defeats the purpose of centralizing entitlement + billing logic in RevenueCat.Feature requestPlease add support for sub-cycle virtual currency schedules, such as:“For annual p
Hi everyone,I’m looking for a way to update the main Call-to-Action (CTA) button text dynamically depending on which package the user selects. I don’t find how to do it… without the toggleCase: If the Weekly package is selected (which has a free trial enabled), I want the button to display: "Try for free". If the Yearly package is selected, I want the button to display: "Continue". Has anyone implemented this kind of conditional UI before? Any tips would be greatly appreciated!Thanks in advance!
I am currently finalizing a paywall design using the RevenueCat Paywall Editor (Tabs component).I have a specific design requirement where the pricing text displayed below the main card needs to change dynamically when the user toggles between the 'Annual' and 'Standard' tabs. Currently, that text remains static regardless of which tab is selected.Could you clarify the correct layer hierarchy for this? Do I need to nest the text layers inside the specific Tab Content folders to ensure the variables (like {{ product.price_per_week }}) update according to the selected package, or is there a different method to link text visibility to the active tab state?
Hello, while inspecting my RevenueCat panel, I noticed something.I offer Ad-Free usage in my application. The user first started using the app in July 2023 and has been actively using it. They made their purchase today, exactly 2.5 years later.To convert such long-term users to paying sooner, I think adding a criterion in the experiment screen, such as "Show B paywall if X time has passed since first open," would solve my problem.For example: "Hey, we've been together for over a year. blah blah"I'm presenting this idea to you. Regards.
Currently, our app uses device ID as the RevenueCat App User ID.On Android, when a user:- resets the device, or- switches to a new phoneThe device ID changes, which causes the App User ID to change as well.Recently, we’ve received many user complaints about being unable to restore their purchases.What we observed:- After device reset or device change, the user is treated as a new App User ID in RevenueCat.- The previous purchase is still visible in RevenueCat under the old App User ID.Using the order ID, we can manually locate the old App User ID and transfer entitlements manually, which works.However, automatic restore does not always transfer entitlements, even though:- The purchase was made with the same Google account- We are calling restorePurchases() correctlyExpected behavior (our understanding)From RevenueCat documentation and theory:When calling restorePurchases(), RevenueCat should automatically transfer entitlements to the current App User IDBut in practice, this does not co
Hi, Is this normal to not having data at the Customers > Sandbox page?Thanks!
Anyone knows how to change the blue color of the buttons in the image please? As in the design they are buttons that are linked to another websites.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.