howtodistribute
← Back to the index

How Uber got its users

UNFAIR EDGEViral productgiantb2cruns ads
Visit uber.com

Massive referral spending at a loss, city by city, backed by a war chest built to buy the market before anyone else could.

Confirmed. The team said it publicly, or the signals leave no room for doubt.

Can you run this?
UNFAIR EDGE

It worked because of something they already had, or a window that has closed. Copying it will not reproduce it.

The edge you do not have: Access to capital with no equivalent in startup history

Your time
Ongoing
Your money
Billions. Not a typo.
First signal
Immediate
Upside
  • An acquisition cost that trends toward zero
  • Growth that survives you cutting the budget
Price of entry
  • A moment where the user has a selfish reason to share
  • Zero friction for the recipient
  • A product that is multiplayer by nature

Viral product in 2026

The best channel when it exists. But it is decided in product design, not in marketing.

Everything on this channel →

The play

5 steps, in the order they ran them.

  1. 1

    Copy the trigger, not the button. Uber's Share Trip Status lets the rider pick up to 5 contacts and Uber sends the text itself, so the rider shares for their own safety and not as a favour to Uber. Find the moment your users already retype your product's state into iMessage, WhatsApp or Slack (the ETA, the status, the result, the proof) and make your product generate that exact message. If you have to ask people to share, you picked the wrong moment.

    done whenYou can quote, word for word, a message one of your users typed by hand this month that your product could have generated for them. No quote means the loop has no fuel yet.

  2. 2

    Ship the shared thing as a live page, not a screenshot. Uber's link opens in any mobile browser with no account and no install, and it keeps showing the driver's first name, the vehicle, the plate and the car moving on the map until drop-off. Host yours the same way: one unauthenticated URL, content that keeps updating while the underlying event is still running, your name on the page the whole time.

    done whenDelete your own app, open your own share link in a private browser window on your phone, and time it. If the recipient does not have the full value in five seconds and zero taps, it is not a distribution surface.

  3. 3

    Put the install prompt after the value, never in front of it. The Uber tracker shows the map first and only nudges the app download on mobile web; a parent tracking a ride at midnight is never asked to sign up to see the car. Give your shared page one call to action, placed under the content, worded for the recipient's situation rather than yours.

    done whenCount the calls to action on your shared page. More than one, or any of them sitting above the content, means you are spending the sender's credibility instead of your own.

  4. 4

    Build the path where your paying user hands the whole product to someone with no account. Uber lets you request a ride for someone else: you pick a contact, and that person, who may have no app and no account, gets a text with the driver's name, vehicle make, plate and a live tracking link, and the car shows up for them. Ship one flow where a user spends their own account to deliver your full output to a phone number or email that has never signed up.

    done whenSomeone who has never heard of you can receive and use your core output, addressed to their phone number or inbox, without creating anything. If billing blocks it, cap it at one guest delivery per user per month and ship it anyway.

  5. 5

    Let invited non-users do work inside the product, not just watch it. In an Uber Eats group order the organizer sends a link, guests tap Join order and add items to the shared cart from a browser, each item carrying the guest's name, and guests are not required to be signed in when the organizer is paying. Build one surface where an invitee contributes something real (a line, a file, a choice) before any signup, with their name attached to it.

    done whenAn invitee can write something into your product and see their own name next to it in the account holder's view, without registering. Then count how many of those names come back on their own the following week.

Run this against your own product

In your chat

Carries the play above, and is written to tell you no when this channel is out of reach for you.

In your editor

The same twelve channels as an agent skill. It reads your repository and eliminates what you cannot run. Open source, MIT.

curl -o ~/.claude/skills/howtodistribute/SKILL.md https://howtodistribute.com/skill.md

Publicly listed company

They ran the same play

Want this verdict on your product?

Describe it. You get back the channel I would run in your place, the 30-day plan, and the number at which you stop.