For the ones building on their own
Every sale,
out loud.
TapRev is an iPhone app for people who sell software, apps and digital products. Connect the platform you sell on, paste a read-only key, and your revenue is one number on your phone, with a ka-ching every time a sale lands. Every sale is a step on a journey the app keeps for you: a hundred badges, a day count, the next summit always named.

Works with
- Stripe
- Lemon Squeezy
- Paddle
- Polar
- Gumroad
- FastSpring
- Dodo Payments
- Creem
- RevenueCat
One is enough: most founders sell in one place. Connect a second when you sell in a second, and it joins the same number. Your API keys stay in your iPhone’s Keychain. No TapRev server holds your data, and there is no account to make.
You check it before breakfast, after the launch tweet, and once more before bed. Not for the charts. To see if the number moved.
You sell a SaaS.
A subscription on Stripe, or Paddle, or Lemon Squeezy, or Polar. The number is the business, and you open it before you open your editor.
You ship an app.
Sales through RevenueCat: the App Store as a number you can check, and, if you also sell a web plan on Stripe, the two as one.
You sell what you made.
Templates, courses, a tool you built last month, on Gumroad, FastSpring or Dodo Payments. Every sale is someone choosing your work.
▲ 4.2%against the 30 days before
The number moved because you did.
The number comes to you.
Open the app, or glance at the widget. Every sale from the platform you sell on is already in the number, and any platform you add joins it. When one lands, you hear it before you look.
- Stripe—$4,120.00
- Lemon Squeezy—$880.00
- Paddle—$1,930.00
- Polar—$1,260.00
- Gumroad—$640.00
- FastSpring—$1,410.00
- Dodo Payments—$520.00
- Creem—$460.00
- RevenueCat—$1,140.00
Ka-ching. For everything you sell.
Every sale lands on your phone with a sound. A big one — you set the threshold — gets a different sound, so you know before you look. And every sale alert says how far the next summit is, because every sale is a step.
- 07:30Daily Revenue Summary — your numbers, at the hour you pick
- 11:04Large Sale! — Acme Team, annual+$1,188
- 16:47New Sale — Acme Pro, monthly · $2,799 to the $5K summit+$49
- 16:47Badge unlocked — A week sold · Determination · Day 329

Day 329 on the journey
Every sale is a step. The app keeps count.
Your first sale is a badge. So is your tenth and your hundredth, the day your MRR crosses $100 and the day it crosses $1K, a week of selling every day, the first customer who came back to pay again, the first one from another country. Sixty badges in seventeen tracks, every one earned from real revenue and never from opening the app, every locked one showing how far you are. Each comes with a card, made on your phone, worth posting.
First sale
The first payment TapRev sees.
Bronze · Courage
A week sold
A sale on seven days in a row.
Bronze · Determination
$100 summit
MRR crosses $100.
Bronze · Hope
They came back
The first renewal: someone paid a second time.
Bronze · Growth
Two countries
Customers in two countries.
Bronze · Inspiration
Comeback
A new MRR high after a month below the last one.
Silver · Resilience
The room shows the day you are on, what is next up, every track and its level, and how far the next summit is. Every sale alert says the same: “$49 from Stripe · $2,799 to the $5K summit.”

Paste a key. That’s the setup.
No account to create and no TapRev server in between. Pick a platform, paste a read-only API key, and your phone syncs from it — whenever you open the app, and about every half hour in the background.
1Pick where you sell
Start with the one you check most.
2Paste a read-only key
The app tells you where to make one and which permissions to give it.
3See your numbers
Revenue, subscriptions, churn and the split by platform, synced from the platform to your phone.
Your number, on the Home Screen.
Two widgets. The revenue widget: MRR and its trend, ARR, today, thirty days of sales, in small, medium and large, and on the Lock Screen. The Journey widget: a cobalt block with the day you are on, the distance to the next summit and a line for the day, which turns over at midnight without opening the app.
Pro gets the figures. Everyone keeps the day and the line.
Trust the customer who paid for the year.
SELF-BELIEF
Day 329 · $2,799 to $5KLock Screen
March 2026
Apple is retiring the Sales & Trends dashboards.
In March 2026 Apple rebuilt App Store Connect analytics around individual apps, with three months as the default window, and said the Trends dashboards — the one view across all your apps — are being deprecated over this year and next. The 24-hour and 7-day views are still there, just harder to find. If you have more than one app, you add them up yourself.
RevenueCat still sees purchases the day they happen (Adapty too, and its figures come to TapRev in a later update). TapRev reads them from your phone and puts today’s App Store number next to everything else you sell.
Nothing on a server.
Your API keys are stored in the iOS Keychain with the device-only setting: never synced to iCloud Keychain, never restored onto another device. Revenue requests go from your iPhone straight to each platform’s API over HTTPS, and every one of them is a read — the app has no code that writes to a platform. What comes back is cached only on the device: transactions, subscriptions and customer records for the last twelve months. None of it leaves the phone. TapRev has no account, no crash reporter and no server that holds your data.
The one relay
Instant Alerts (Pro) use one relay, hooks.taprev.app, whose only job is to wake your phone when a platform reports a sale. It stores one push token per phone and nothing else: it never receives an API key, a customer, or an amount. Your phone then fetches what changed with its own key, as it always does. Turn Instant Alerts off and the relay forgets the phone.
The two SDKs
RevenueCat’s purchase SDK verifies your subscription. On launch it contacts api.revenuecat.com with your App Store transaction, a random per-install ID and the device’s vendor identifier (not the advertising ID), plus device model and OS version. Those are the “Purchase History” and “Device ID” entries on the app’s App Store privacy label — not linked to your name or email, not used for tracking.
PostHog counts anonymous product usage — which screen was reached, which platform was picked, whether a sync worked — plus the device model, OS and app version, under a random id made on your phone, hosted in the United States. Never an amount, a name, an email or a key. Those are the “Product Interaction” and “Other Usage Data” entries on the label, and one switch in Settings turns them off.
Read the privacy policyOne plan. Try it before you pay.
Connect your platforms and the numbers are open for a day, no subscription needed. After that, the numbers and transaction history blur until you subscribe. New subscriptions start with a 7-day free trial; cancel before it ends and you’re not charged.
- Every number, from every platform you connect
- Full transaction history, searchable
- The journey: a hundred badges, the room, the cards
- Both widgets, with their figures
Your connections and cached data stay on your phone whether or not you subscribe, and sale alerts keep arriving either way. The revenue widget goes blank until you do; the Journey widget keeps the day and the line.
Prices in USD; the App Store sets local prices. The free trial is offered once per Apple ID. Cancel any time in your Apple ID subscriptions.
Before you paste a key
Stripe, Paddle, Lemon Squeezy, Polar, Gumroad, FastSpring, Dodo Payments, Creem and RevenueCat, with every sale, renewal and refund. Adapty connects too; its revenue figures arrive in the next update, since Adapty reports totals rather than payments. Connect as many as you use.
No. One is enough — connect a single Stripe account and the number, the widget and the ka-ching work exactly the same. Add others if and when you sell somewhere else.
The numbers blur and ask you to subscribe. Nothing is deleted: your keys, connections and cached data stay on the phone, and notifications keep coming. The widget goes blank until you subscribe; then everything reopens exactly as you left it.
Through RevenueCat today, and Adapty in a later update. TapRev doesn’t read App Store Connect. A purchase shows on the next sync — open the app, pull to refresh, or in the background when iOS allows it — or within seconds with Instant Alerts.
No. MRR is calculated per currency and the app shows one — the currency you choose in Settings, or the one with the most MRR — and, if you have more than one, a footnote saying which. Nothing is converted.
No. They are in your Keychain, and there is nothing on our side to send them to. Settings → Delete All Data removes them; deleting the app alone does not, because iOS keeps Keychain entries — do that first, or revoke the key at the platform.
No. Stripe, Polar, Paddle and RevenueCat issue keys with read-only permissions, and the app tells you which to pick — for Stripe, a restricted key with Read on Charges, Customers, Products, Subscriptions and Balance. The others don’t offer a read-only scope; TapRev only ever reads with the key, and you can revoke it in the platform at any time.
Then your number is revenue over the last thirty days. TapRev reads the mix of the last ninety days: when most of it is one-time, revenue leads on the dashboard, the widgets and every alert, and the journey’s summits are what you have earned all time; when subscriptions lead, it is MRR. You can pin either one in Settings.
Every time you open it or pull to refresh, and in the background when iOS allows it: the app asks for a check every 15 minutes, and iOS grants one somewhere between that and a few hours. Notifications arrive as sales are found. With Instant Alerts (Pro), a platform wakes your phone within seconds of a sale through a webhook link you paste into that platform; the relay behind it keeps one push token and nothing else.
A hundred badges in eighteen tracks, earned from real revenue: your first sale and your hundred-thousandth, the $100 summit and the $1M one, the first $1,000 earned and the ten-millionth, a week sold in a row, the first renewal, a customer in a second country. Every locked badge shows how far you are, every earned one has a card you can post whenever you like, and every sale alert says how far the next summit is. The Journey tab keeps them, with words of wisdom, one a day from a year of original ones, and the moments the app celebrated, each a card. Nothing is earned by opening the app.
No. The journey is computed on the phone from the data already there. A badge leaves only when you share its card, and the card carries the badge, the day and the date, never a customer.
No advertising tracking, ever: no IDFA, no ad network, no cross-app or cross-site profile. It does send anonymous product-usage events (which screen, which platform, whether a sync worked) to help fix onboarding, never an amount, a name, an email or a key. Turn it off in Settings.
Yes. The last sync is cached on the device, and the app says how old it is.
iPhone, iOS 18 or later, for now.
Yazeed Al Oyoun, an indie developer. Say hello on X.
Words of wisdom
A year of them, one a day: on the dashboard, in the Journey tab, on the Journey widget, in a morning notification, and in the summary when yesterday sold nothing. Original, unattributed, in the voice of someone who has been there, and every one of them a card you can share.
Every graph starts at zero. Yours didn't stay there.
Self-belief
You went out on your own. That was the hard part.
Courage
Nobody sees the day you almost quit. Keep it anyway.
Resilience
Someone is watching you build. Show them it's possible.
Inspiration
A renewal is a stranger saying yes twice.
Growth
Quiet days are where the next one is built.
Determination
One tap.
One number, and a sound when it moves. Every sale is a step, and the app keeps count.