🎁

Pick the referral program that fits your app

Discounts don't make anyone share. Harry's, Morning Brew and Robinhood each offered something else, and they're not the only options. Here's how to tell which reward fits your app, plus a prompt that designs it.

Matt Neves logo
By Matt Neves

Most referral programs on indie apps are some version of 10% off, and most of them do nothing. Harry's collected 100,000 emails in a week before it had a product to sell. Morning Brew got more than 30% of its subscribers from readers passing it on. Robinhood had a million people in line before launch day. Not one of them led with money off. Here is what they offered instead, the other rewards worth putting next to them, how to tell which one fits your app, and one prompt that designs the program for you.

Best results: paste this into ChatGPT, Claude or Gemini in a normal chat. It doesn't need deep research or web search, it needs to know your app. Swap the [BRACKETS] for your details before you run it.

Nobody shares an app to save 10%

A discount is the obvious reward and the weakest one, for a reason worth being precise about: it is a thing your user could have got anyway. Sales happen. Codes leak. Anyone who waits long enough gets the same 10% for doing nothing. Asking someone to text three friends in exchange for a price they suspect was coming anyway is a bad trade, and they can feel it even if they can't name it.

It also costs you twice. You pay for the discount, and you teach the person taking it that your price is negotiable, which gets expensive later on a subscription.

The three programs below asked for exactly the same thing, tell someone about us, and offered something the customer could not buy at any price. That is the whole difference.

Three programs, three different rewards

Harry's built a ladder. Before the razors existed, the site asked for your email and then showed you what happened if you shared it. Five referrals got you shave cream, and the rewards climbed from there until fifty got you a year of free blades. Around 100,000 emails arrived in the first week and 77% of them came through referrals. The decision that carried it was the bottom rung, not the top: five, not fifty. Almost anyone looking at that page could picture clearing five, and the people who cleared it kept climbing. Only about 200 people ever reached fifty, and that didn't matter, because the fifty was mostly there to make the five look easy. That is progress, and people will chase a bar they can watch moving.

Morning Brew sold membership. Three referrals unlocked Light Roast, a Sunday edition that non-referrers don't get. Past that came stickers, a private community, then shirts and mugs. Over 75,000 readers have cleared three. Referrals have driven more than 30% of subscribers on the way past 1.5 million, at roughly 25 cents each against the few dollars that paid acquisition costs. The rewards look like merch and they aren't: a Brew mug on a desk is somebody telling the room what they read, and the Sunday edition draws a line between readers and readers who brought people. That is identity, and it only works if your users already think of themselves as something because of your app.

Robinhood sold the queue. No product, one landing page, and a number: your exact place in line, moving up every time someone joined through you. A million people were waiting by launch. Polymarket ran the same play for its US app and also passed a million, with an invite code as the only way to skip ahead. That is access, and it is the strangest of the three, because the reward costs nothing and doesn't technically exist. It is also the only one with an expiry date. It stops working the moment anyone can just sign up.

What all three have in common

You cannot buy any of those rewards. There is no price for a Morning Brew Sunday edition and no way to pay Robinhood for a better spot in the queue. The only way to get one was to bring somebody.

That is the test to run on any reward you're considering. If a user could get the same thing by handing you money, you haven't designed a referral program. You've designed a discount with extra steps.

Hold on to that test rather than to the three examples. It keeps working when the shape you land on looks nothing like any of them, and there are more shapes than three.

Which one fits your app

Three questions that get most apps to an answer quickly. Take them in order and stop at the first yes. If none of them lands cleanly, the section after this one has more to choose from.

1. Have you launched yet? If not, use access, and use it now. Anticipation is the only currency you have before there is a product, it costs you nothing to give away, and it expires on launch day. The whole mechanic is a waitlist that shows a real position and moves it when someone joins through your link. If you're already live you can still run this for a genuinely capacity-limited release, a beta or a fixed number of seats, but only if the limit is real. Invented scarcity gets found out in one screenshot.

2. Do your users already think of themselves as a type of person because of your app? If they have a word for themselves, if they bring it up unprompted, if using it produces something other people can see, use identity. The reward is something referrers get and nobody else can: a private tier, an unlisted feature, first look at what you build next, something they can wear or post. Fitness, finance, learning, content and community apps usually land here. Utilities usually don't, and forcing it is how you end up with 400 branded stickers in a drawer.

3. If neither one fits, a ladder is the safe default. Progress asks the least of you, because it works even when nobody has any feelings about your brand. If your app is software, the cheapest rungs in the world are made from your own product: a month of premium, extra credits, a feature unlock, more storage. Your marginal cost is close to zero and the perceived value is your full sticker price, which is the best margin available in marketing. Start the first rung at three to five.

If your app is free with no paid tier, the rungs have to come from limits you already have, like more slots, more alerts, or a feature that ships switched off. Do not invent a restriction so that you have something to hand back. Users notice when a wall went up the same week the referral screen did, and it reads as exactly what it is.

Other rewards that work

Those three have the cleanest evidence behind them. They are not the whole space, and if none of the questions above landed cleanly, one of these probably suits your app better.

  • Both sides get more of the product. Dropbox gave the referrer and the new user 500MB each, up to a 16GB ceiling, and reportedly lifted signups by around 60%. Fits any freemium app with something metered in it: storage, credits, seats, exports, minutes. When your marginal cost is near zero this is the cheapest program on the page. Growth hacking with no budget goes deeper on the loop itself.
  • The referrer gives instead of getting. Uber and Airbnb built theirs around handing your friend credit toward their first ride or first stay, where the referrer's reward is having been the person who gave it. Fits when the thing stopping the new user is the first purchase. This doesn't break the no-discounts rule either: money aimed at a stranger is acquisition cost, money off your existing user's next bill is a lesson that your price is soft.
  • The invite is the product. Venmo, shared albums, shared documents, anything multiplayer. There is no reward budget at all here, because the app is visibly worse alone and inviting someone is a feature rather than a favor. If your app has any version of this, it beats everything else listed here, and it's the one indie apps most often walk past.
  • A draw instead of a certainty. Robinhood again, after launch this time: every referral pays a random free stock, which is $5 for about 99% of people and occasionally $200. A variable payoff pulls harder than the same money handed over flat. It is also the most expensive family here and the easiest to get wrong. Tesla's prize-draw referrals got costly enough that the program was killed in 2019, and some Roadster winners were still waiting years afterwards. Check your local rules on prize draws before running one.
  • A real cut of the money. An affiliate or ambassador program pays a commission for bringing customers. Fits higher-priced products and audiences with reach of their own, where someone will actively promote you rather than just mention you. It does not fit a $3 app, because the arithmetic never gets interesting enough for anyone to bother.
  • The reward goes somewhere else entirely. A referral triggers a donation, or funds something your users already care about. Fits only when their sense of themselves is genuinely tied to that cause, and reads as hollow the moment it isn't.
  • A public leaderboard of referrers. Fits when your users are already competing with each other inside your app, and is dead weight when they aren't.

There's no reason to stop at this list either. The two rules that decide whether a new idea belongs on it are the ones above: the referrer's reward should be something they couldn't just buy from you, and you have to be able to afford it at a thousand referrers rather than ten.

And an honest last answer. If your app is a one-time purchase, launched a while back, with nothing to give away, no public identity, and no reason for one user to want another one there, you might not have a referral program available at a price that makes sense. That is a real result, and it's worth reaching in an afternoon rather than a month.

The prompt

It does four things in one run. First it tells you whether to build one at all, and stops if the answer is no. Then it commits to a single reward and argues against the closest alternatives, because the failure mode of asking an AI this question is a cheerful answer that recommends everything. Then it designs the tiers, prices them at real volumes, and writes the copy. Then it decides what success looks like as a number, while you still have no numbers to be attached to.

Design a referral program for my app, and pick the ONE reward type that actually fits it.

My app: [WHAT IT DOES, in plain mechanics]
Who uses it: [WHO IT'S FOR]
Stage: [NOT LAUNCHED / LAUNCHED]
What one extra user costs me to serve: [e.g. near zero, or 40c of API calls, or a physical product]
What I charge: [FREE / $X once / $X per month]

Optional, paste at the bottom if you have them: my App Store or Play reviews, support emails, the exact words people use when they recommend my app.

Work in four parts and print all four.

=== PART 1: SHOULD I BUILD ONE AT ALL? ===

A referral program accelerates word of mouth. It cannot create it. Before designing anything, tell me straight whether I have something to accelerate.

Judge it on one thing: is there a moment where my user gets a result worth telling another person about, and could they say what my app did for them in one sentence?

If no, say so plainly, tell me what to fix first, and STOP. Do not design a program anyway to be helpful. A referral program on an app nobody mentions is a settings screen nobody opens.

If yes, name the exact moment. That is where the ask goes in part 3.

=== PART 2: PICK EXACTLY ONE REWARD ===

These three have the strongest evidence behind them, so start here:

PROGRESS: a ladder of rewards that gets more valuable as the referral count climbs. Fits when I can give something real away at every rung, and is cheapest when the rungs are made of my own product.
IDENTITY: something only referrers get, that marks them as an insider or that other people can see. Fits when my users already think of themselves as a type of person because of my app.
ACCESS: earlier entry. A visible position in a queue that moves when someone joins through them. Fits before launch, or before a genuinely capacity-limited release.

Those three are a starting point, not the whole space. Any of these is equally available to you:

MUTUAL: both sides get more of the product, out of something metered like storage, credits, seats or exports.
GIFT: the referrer hands the new person something, and their own reward is having been the one who gave it.
NETWORK: no reward at all, because the app is worse alone and the invite is a feature rather than a favor.
DRAW: each referral is an entry or a variable payoff rather than a guaranteed prize.
REVENUE SHARE: a genuine commission, for higher-priced products and people with their own reach.
CAUSE: the referral funds something outside the product that my users already care about.
COMPETITION: a public ranking of referrers, for users who already compete with each other in my app.

You may also propose something that is on neither list. If you do, name it in one line and say what makes it different from the closest thing above.

Rules:
- Pick ONE and commit to it. Do not hedge, do not blend two, and do not hand me a phased roadmap that quietly contains four.
- Say in one line each why the three closest alternatives are wrong for MY app specifically. If you can't argue against them, name the fact about my app you're missing instead of guessing.
- BANNED as the reward for the REFERRER: a discount on my own price, a percentage off, or credit against what they already pay me. Those buy a transaction instead of an advocate and they teach my users that my price is soft. Giving credit or money to the NEW person is a different thing and is allowed, because that is acquisition cost, but if you pick that, say explicitly that the referrer's reward is social rather than financial.
- Default to a referrer reward they could not simply buy from me at any price. If the design you pick makes it buyable, a draw or a commission for instance, say plainly why that's right for my app rather than arriving there because it was easy.

=== PART 3: DESIGN IT ===

Build the actual program for the type you picked.

- THE TIERS. Exact referral counts and exact rewards. The first tier must be clearable by someone with an ordinary number of friends: 3 to 5, never 10. Estimate what fraction of referrers reach each tier.
- If my app is free and has no paid tier, build the rungs out of limits that already exist in it, or out of access and status. Do NOT propose that I add a new restriction so I have something to give back as a reward. If you cannot find enough to give away without doing that, say so and send me back to part 2 with the reward you would pick instead.
- WHAT IT COSTS ME. Real numbers, using the per-user cost I gave you. Show the total at 100 referrers and at 1,000. If a tier is unaffordable at 1,000, redesign it now instead of warning me about it later.
- THE MOMENT OF THE ASK. The specific screen or event in my app, taken from part 1. Not "in settings", not "after onboarding".
- WHAT THE REFERRER SEES. Their count, their progress to the next tier, and how they get their link or code. Describe the screen.
- ONE-SIDED OR TWO-SIDED. Whether the new person gets anything, and why that's right here.
- THE EXACT WORDS. Write the message my user sends, the screen copy at the ask, and the notification when they clear a tier. Use my users' vocabulary, not marketing language. No exclamation marks and no "Refer a friend!". If I pasted reviews above, take the phrasing from those.
- FRAUD. Name the two most likely ways people will game THIS specific design, and the cheapest check that stops each.

=== PART 4: HOW I'LL KNOW IT WORKED ===

- The one number that tells me, defined precisely: what is counted, over what window.
- Three concrete figures for that number: dead, working, exceptional. Figures, not adjectives.
- How long to run it before judging.
- What to change first if it underperforms, and what not to touch.

Finish with one line: the single most likely reason this program fails, and what would have to be true for you to be wrong about it.

What makes them work, whichever one you pick

  • The first tier has to be reachable. Three to five. Harry's opened at five and Morning Brew at three. A ladder starting at ten is a ladder nobody steps onto, and you'll conclude referrals don't work for your app when what you actually tested was one number.
  • Show the count. Robinhood showed your place in line. Morning Brew shows a progress bar. A referral counter the user can't see isn't a game, it's paperwork.
  • Ask at the moment it worked, not at install. Nobody recommends an app they've had open for eleven seconds. Put the ask directly after the thing your app exists to do actually happens.
  • Decide about the other side on purpose. Two-sided is usually stronger because it turns "do me a favor" into "here, have this". One-sided is fine when the reward is status, which is the point of an identity program.

The part nobody warns you about on mobile

You need to know who referred whom, and the App Store will not tell you. A tap on a share link goes to a store page, and the install that follows arrives with no memory of where it came from, so a plain link tells you a download happened and nothing about who caused it.

The reliable low-effort version is a code. The referrer gets a short one, the new user types it during onboarding, and you match them in your own database. Deferred deep-link services do the same job more smoothly for money and setup time. Start with the code. It is unglamorous, it works on both stores, and it can ship this week.

If nobody talks about your app yet

Point the best-designed ladder in the world at an app nobody mentions and you get a feature nobody opens. Part 1 of the prompt exists to catch this, but the real test costs an afternoon and no tokens.

Message ten people who genuinely use your app and ask whether they've told anyone about it, and what they said. If most say no, or if the ones who said yes can't describe what it does in a sentence, the referral program isn't your next move. The sentence is.

How to use it

  1. Fill in the brackets. [WHAT IT DOES] in plain mechanics with no marketing in it, [WHO IT'S FOR], your stage, roughly what one extra user costs you to serve, and what you charge. The cost line matters most: it's what stops the AI handing you a ladder you can't afford at 1,000 referrers.
  2. Paste your reviews at the bottom if you have any. The words people already use to recommend you are the words that belong in the share message.
  3. Read part 1 before anything else. If it tells you not to build one, that answer is worth more than the design would have been.
  4. Ship one rung. One tier, one ask, one code. Add the rest when people start clearing the first one, not before.

And the version that costs nothing at all: find the handful of users who already recommend you, and ask them what they say when they do. That sentence is your share message, and it will beat anything you or an AI writes for it.

Get the next one first

I'm Matt (@agenticmatt). I build apps and write up what actually moved the numbers: the prompts, the real results, and the things that flopped. Leave your email and the next guide comes straight to you.

Explore the library

More guides and playbooks to grow your app