A storybook for one maker or a whole team
Why
RevenueCat?
A tale about the work hiding under one button, and the friend who carries it
Starring Shippy, Tama, Suna, Gavi & Coda
2:07 a.m., somewhere on the internet
Chapter 1 · The Little App
Once upon a time, Shippy built a little app.
It began late at night, in a small room lit only by a laptop. By morning the app had made one person smile. Then ten. Then a few thousand.
Tama opened it every day before breakfast. "I love this," said Tama, with hearts for eyes.
Shippy had made something people loved. That is the hardest part, everyone says. Nobody mentions what comes next.
1
Rent due!
One button. What could go wrong?
Chapter 1 · The Little App
Love is wonderful. Rent is due.
Shippy wanted to work on the app full time, and that meant the app had to earn its keep.
"I'll add a subscription," said Shippy. "It's just one button. How hard can one button be?"
Shippy is not alone. In January 2022, about 2,000 new subscription apps launched in a month. By January 2026, more than 14,700 did. Only 4.6% of newly launched apps reach $10K in monthly revenue within two years. Source: State of Subscription Apps 2026
Chapter 2 · The Iceberg Under the Button
The button was only the tip of the iceberg.
Under the water, out of sight, the real work was waiting.
Receipts to check with every store. Notifications to catch. Refunds that arrive weeks later. Upgrades, downgrades, price changes, and restores on a brand new phone.
The button took an afternoon. Everything under it would need looking after for as long as the app lived.
3
Chapter 2 · The Iceberg Under the Button
Two kingdoms, two languages. Then three.
The App Store kingdom spoke one language of receipts. The Google Play kingdom spoke another. When Shippy opened a web checkout, a third kingdom arrived with rules of its own.
Each one had its own subscription states, its own dashboard, its own payout calendar, and its own way of counting currencies, taxes, and fees.
Shippy translated between them by hand, and the numbers never quite matched.
4
It breathes. It changes. It never stops.
Chapter 2 · The Iceberg Under the Button
A subscription is alive.
A purchase happens once. A subscription keeps changing. It renews. A card fails. It waits in a grace period, tries again, comes back, upgrades, and moves to a new phone.
Someone has to know its true state, for every person, across every store, for as long as the app lives.
That someone was Shippy. Every single night.
5
Churn +1
Chapter 2 · The Iceberg Under the Button
The night it broke.
One night a card quietly failed, and nobody noticed. A loyal subscriber got a new phone and was asked to pay again. Suna, who ran growth, crashed straight into the numbers.
The dashboard did not say access bug. It just said churn.
On Google Play, nearly a third of all subscription cancellations are involuntary billing failures, more than double the rate on the App Store. Source: State of Subscription Apps 2026
Chapter 2 · The Iceberg Under the Button
And every year, the rules change.
New store APIs. New billing libraries. New laws about payment links. Old ways of checking receipts, deprecated.
Shippy spent spring migrating and summer patching. The app Tama loved got almost no new features.
The plumbing was eating the product. Shippy had set out to build an app, and had become a plumber.
7
Knock, knock.
Chapter 3 · A Friend Called RevenueCat
Then a friend knocked.
"I'm RevenueCat," said a cheerful little machine. "Let me carry the receipts. You carry the app."
Shippy added the SDK, configured it once, and from then on asked a single question: does this person have Pro?
Purchases.configure(withAPIKey: "your_api_key")
let info = try await Purchases.shared.customerInfo()
if info.entitlements["pro"]?.isActive == true {
unlockPro() // that's the whole question
}
Swift shown. The open source SDKs also cover Android, Flutter, React Native, Kotlin Multiplatform, Unity, Capacitor, the web, and more.
8
Chapter 3 · A Friend Called RevenueCat
One key opens every door.
Shippy made one entitlement called pro and attached the products from every store to it: monthly and yearly, on iOS, Android, and the web.
Tama subscribed on a phone, signed in on a tablet, then opened the web app. Every door was already open.
Access followed the person, not the device.
9
- Receipts checked with the stores
- Store notifications caught
- Webhooks sent, and retried
- Answers signed
- Paywall cached, just in case
Chapter 3 · A Friend Called RevenueCat
While Shippy slept.
RevenueCat stayed up. It checked every receipt with the stores, caught every store notification, and turned them all into one tidy stream of events.
When Shippy's server missed a webhook, RevenueCat tried again. It could sign its answers so the app could spot a forged one, and it kept paywalls cached in the app, so the paywall still showed up on a bad night.
Failed webhooks are retried up to 5 times with exponential backoff, and RevenueCat targets 99.99% uptime. Sources: Webhooks docs, Reliability, Trusted Entitlements
Release notes: read
Back to building
Good morning, new store rules.
Chapter 3 · A Friend Called RevenueCat
When the rules change, Shippy bumps a version.
Apple and Google still change things every year. Now RevenueCat's engineers do the migrating, in the SDKs and on the servers.
Shippy reads the release notes, follows the migration guide when a major version has one, and gets back to building.
And when new rules let apps link out to a web checkout, the same pro key opened that door too.
11
Chapter 3 · A Friend Called RevenueCat
A friend who waits for you to grow.
"How much does a friend like you cost?" asked Shippy.
"Nothing, until your app tracks $2,500 in a month," said RevenueCat. "Then 1% of what I track. When you grow, I grow. In months you don't reach it, you don't pay."
"Pay nothing for up to $2,500 in monthly tracked revenue. Then pay 1% of what you track once you hit $2,500 in MTR." Source: RevenueCat pricing
Chapter 4 · Growing Up
The paywall garden.
Now Shippy had time to grow things. With Paywalls, Shippy designed the purchase screen in the RevenueCat dashboard, or imported it from Figma, and the app drew it natively.
Changing a headline used to mean a new build, a store review, and a long wait. Now it meant pressing Publish.
RedKiwi cut the turnaround time for new promotions from weeks to just a few days. Source: RedKiwi case study
Hypothesis: yearly wins. Let's find out.
Chapter 4 · Growing Up
Gavi's laboratory.
Gavi loved questions. Monthly or yearly? A three-day trial or a week? Which paywall wins?
With Experiments, Gavi split new customers into groups, showed each group a different offering, and followed what happened to revenue over time, not just on day one. No app release required.
dub tested its pricing with RevenueCat and shifted toward annual plans, which increased LTV by 207%. Source: dub case study
Chapter 4 · Growing Up
The right offer for every traveler.
Not every traveler wants the same thing. With Targeting, Suna showed different offerings by country, app version, or custom attributes, all from the dashboard.
Students got one deal, longtime fans another, and nobody had to ship an update to make it happen.
Pixelcut's Experiments found that a weekly offer brought 16% more paying customers than a monthly one, then Targeting showed the winner to the right people. Source: Pixelcut case study
Every store, one sky.
Chapter 4 · Growing Up
The stargazing tower.
From the top of the tower, Shippy could finally see everything at once: revenue, MRR, churn, trial conversion, refunds, and lifetime value, for every store, in one sky.
No more spreadsheets stitched together at midnight. When the team asked "How are we doing?" everyone looked at the same stars.
RevenueCat Charts track 40+ KPIs, and Scheduled Data Exports can send the raw data to your own cloud storage. Sources: Charts, Scheduled Data Exports
Amplitude
Braze
AppsFlyer
Mixpanel
Adjust
Segment
and many more
Chapter 4 · Growing Up
Paper planes.
Every purchase, renewal, refund, and cancellation flew straight to the tools the team already used, so marketing and analytics finally saw real revenue instead of guesses.
Photoroom with Amplitude: a 2 to 3x increase in trial sign-up rates in Japan. VSCO with Braze: membership churn down almost 5%. Runna with AppsFlyer: CAC down 8%. Sources: Photoroom, VSCO, Runna
Refund Control
Chapter 4 · Growing Up
Keeping friends close.
One day Tama reached for the cancel button. Instead of a dead end, the Customer Center opened inside the app: get help, manage the plan, or say why and receive a thank-you offer before leaving.
Tama stayed. And when someone asked a store for a refund, Refund Control sent along Shippy's preference. The store still made the final call.
Customer Center can prevent churn with pre-emptive promotional offers and capture exit feedback, without any help from your support team. Plan changes and refund requests inside it are iOS only. Sources: Customer Center, Refund Control
Chapter 5 · The Kingdom
The little app became a kingdom.
Years passed. One app became several, and Shippy's little room became a company with towers for Engineering, Growth, Data, Finance, and Support.
In many kingdoms, every tower keeps its own map. Here, every tower read from the same one: every customer, every purchase, every dollar.
Finance saw every store's revenue in one place. Support saw each customer's whole history.
KRNL made RevenueCat the monetization source of truth across all 7 of its apps. Source: KRNL case study
Less plumbing
Chapter 5 · The Kingdom
Coda got the weekends back.
Coda led Engineering. Coda's favorite feature was the one nobody had to maintain anymore: no receipt servers to babysit, no new store APIs to wire up by hand.
The engineers built product instead of plumbing, and every new app launched with monetization on day one.
Ladder estimates it saved 30 to 45% of its lines of code, mostly on the backend. The Tapping Solution cut its backend engineering hours by 50%. Sources: Ladder, The Tapping Solution
Built for 99.99% uptime
Chapter 5 · The Kingdom
Built for big storms.
Launch days bring storms: a viral video, millions of new people at once. The kingdom's lights stayed on.
When ChatGPT launched on iOS, it hit #1 in the U.S. App Store within 24 hours, with RevenueCat underneath. ElevenLabs' mobile app reached $1M ARR in just 16 days.
Sources: revenuecat.com, Reliability, OpenAI and ElevenLabs case studies.
21
One person
A whole team
Chapter 6 · Happily Ever After
Two happy endings.
If you are one person with a big idea
- Build the button. Skip the iceberg.
- Every feature here is included, free until you track $2,500 a month.
- Quit the day job sooner: the CardPointers founder did within a year of shipping.
If you are a team with a big app
- One source of truth for every team.
- Paywalls and experiments without app releases.
- Engineers on product. SOC 2 Type II, built for 99.99% uptime.
- Enterprise adds volume discounts and custom SLAs.
Sources: Pricing, Reliability
22
Liftoff.
Chapter 6 · Happily Ever After
The end. Or rather, your beginning.
Shippy's app is still growing. The receipts are still being carried. And somewhere tonight, someone is building a little app that people will love.
Maybe it's you. Let RevenueCat carry the receipts. You carry the app.
23The End
A story about the work hiding under one button, and the friend who carries it, so you can carry the app.
RevenueCat Codelabs · revenuecat.github.io