::Users·React Native·Development

How to grow usage and revenue for your mobile app

How Wellspoken grew from 400 users to hundreds of thousands of downloads. Details about the acquisition channels, paywalls, review strategy, & the Expo tooling.

Liam Du

Liam Du

Guest Author

Tips and tricks for getting users, reviews, and revenue for mobile apps
This is a follow-up to Liam Du's earlier guest post, The solo dev playbook: ship faster with Expo, EAS Build, and OTA Updates. That one was about shipping the first version of Wellspoken in a few weeks. This one is about everything that came after: getting users, getting them to pay, and keeping the app stable as the numbers grew.

A quick recap

I built Wellspoken to solve a problem I had myself. I knew what I wanted to say in meetings, but under pressure the words came out tangled, and the more flustered I got the worse it became. Nothing out there trained the specific skill I needed, so I built it and shipped the first version on iOS and Android in a few weeks.

When I wrote the first post, the picture looked like this:

  • 400+ users
  • $500+ in monthly revenue
  • First paying customer within 24 hours of launch

That was enough to tell me the idea was real. What I did not know yet was whether it could grow into something serious.

Here is where things stand now, roughly six months later:

  • Hundreds of thousands of downloads and tens of thousands of monthly active users across iOS and Android
  • Growing significantly month over month, with international expansion next on the roadmap

This post is the story of how that happened, plus the Expo and EAS pieces that made it possible to run an app at this scale in production without standing up a big infrastructure operation behind it.

What is Wellspoken?

Wellspoken is an AI communication coach for professionals who want to invest in how they come across. Clear, confident communication is one of the highest-leverage skills for getting ahead at work, and it is one almost nobody works on intentionally.

Wellspoken trains it like a skill: short daily drills paired with AI coaching feedback that build your ability to organize your thoughts and deliver them clearly, whatever the setting. Every session is scored with the Wellspoken Index, a 1000-point measure across six dimensions of speaking, so you always know what to work on next and can track progress over time. It is available on iOS and Android.

How we acquired users for our app

There was no single silver bullet. What happened is that a few things matured at the same time and started compounding.

Before any of the channels, the thing that makes all of them work is the product itself. It is easy to look at our growth and read it as a marketing story, but marketing only moves numbers when there is something worth subscribing to. We see this constantly. Copycats clone our screens almost pixel for pixel, ship a hollow version of the product behind them, and convert at a rate an order of magnitude lower. The outcomes are not close, because users feel the difference within the first session.

Two acquisition channels did most of the work:

Organic App Store and ASO

A lot of ASO is just the fundamentals done consistently. Build a product good enough that people keep coming back, because strong retention and engagement feed your store ranking, then stay relevant and keep the listing tuned. We iterate on keywords and the title to match how people search for help with communication, and we use Apple Search Ads to push on keywords we would not rank for organically yet, which brings in installs and reinforces the ranking over time.

These methods only work because the product underneath earns it. Apple benchmarks you against the other apps in your category, and Wellspoken sits in the top 25% on almost every metric they measure. Without that foundation, climbing the App Store is close to impossible.

User Generated Content (UGC) campaign

We run a UGC engine: dozens of creators working with a campaign manager, constantly shipping content and watching what lands. The job is to find two things at once: formats that go viral and formats that convert, because they are often not the same video. A clip can rack up views and drive nothing, or quietly send a steady stream of people who subscribe. When we find a format that does both, we run it hard and keep iterating on it.

While those channels brought more people in, we were constantly improving what they flowed into: onboarding, activation, and the paywall. That work was almost entirely A/B testing, which I will cover in the next section.

The reason revenue jumped the way it did is that these two things multiplied. More qualified installs running through a funnel that converts better compound, and that is what bends the curve. If we had only improved the funnel, or only grown the top of the funnel, the result would have been a fraction of this.

If you take one thing from this section: the product is the multiplier under everything else. Channels and funnels decide how many people you reach, and the product decides how many of them stay.

How to get users to pay for your app

Wellspoken runs on a subscription with a free trial, handled through RevenueCat. RevenueCat takes care of receipts, renewals, and the cross-platform headache of App Store and Play Store purchases.

The hard part was everything around the purchase, and the way we got better at it was to A/B test relentlessly. Paywall visuals, copy, pricing, trial length, where in the flow the paywall appears: we test all of it and let the numbers decide instead of our taste. Most of the conversion gains came from a lot of small experiments compounding.

The lever that moves conversion most reliably is illustrating the problem clearly enough. People subscribe when they feel the gap between how they currently come across and how they want to come across, so the parts of the experience that work hardest are the ones that make that gap concrete. Once someone recognizes their own problem in the product, paying becomes an easy yes.

One thing that helped more than we expected was giving people a number to chase. The Wellspoken Index turns a fuzzy goal ("get better at speaking") into a score that moves.

Every practice session gets scored out of 1000 across six dimensions of speaking: structure, conciseness, confidence, pronunciation, filler rate, and pace. The bigger idea behind it is that communication has never really had a measure. It is one of the most important skills in professional life, it shows up in every interview, every meeting, every promotion decision, and yet it gets evaluated entirely on vibes.

Our ambition is for the Wellspoken Index to become the standard way speaking ability is measured, the way typing speed and language proficiency are measured by accepted standards. A shared number changes how seriously people can train the skill.

For retention, the effect is simple: the score moves. Users watch their index climb across sessions on a performance chart, and when someone can say "I went from 580 to 710," the product's value stops being abstract. A progress metric users actually care about does a lot of quiet work for retention, and a strong score is also exactly the moment someone feels good enough about the app to leave a review.

How to get users to leave a review on the app store

The single biggest thing is when you ask. We trigger the native review prompt at positive moments: right after a user finishes a session and sees a strong score, hits a streak milestone, or unlocks an achievement. That said, the bar doesn't need to be some huge wow moment. People are surprisingly generous once they've experienced real value, even just a couple of good sessions in. You don't need to hide the prompt away waiting for the perfect peak. The main thing is simply avoiding the obviously bad times: during onboarding, right after friction, or before someone has gotten anything out of the app.

Mechanically it's simple on Expo: expo-store-review wraps the native in-app prompt on both platforms, so the user rates without leaving the app. Apple caps how often the prompt can appear, so we gate it behind our own logic and only spend those chances on users showing real engagement signals, like multiple completed sessions.

The deeper answer is the same as everything else in this post: The prompt just harvests sentiment the product created. If people are getting value, a well-timed ask converts remarkably well. If they aren't, no prompting strategy will save you.

Running this at scale on Expo

Here is the part that still surprises me. At hundreds of thousands of users across iOS and Android, I have not opened Xcode or Android Studio once. The tooling behind that is EAS, and it is what lets us run an app at this scale without a dedicated infrastructure operation.

Building and shipping with EAS Build

EAS Build compiles the app for both platforms in the cloud, and EAS Submit pushes it to the stores. There is no local build toolchain to maintain and no machine that has to have exactly the right Xcode version, none of the platform setup that usually eats the most time. In practice we rarely cut a full native build. Most of what we ship goes out as an over-the-air update, and a native build only happens when something changes at the native layer, like an SDK upgrade or a new permission.

Fixing fast with EAS Update

This is the one that matters most day to day. We are a startup, so we ship fast, and shipping fast means we break things. Expo's OTA Update service is what makes that survivable. When something slips through, we push a fix over the air and users pick it up on their next launch, instead of sitting on a broken build for the two or three days an app review takes. The same path carries the steady stream of smaller changes too: copy tweaks, paywall adjustments, UI fixes, all live the moment they are ready.

At this many users the math is simple. A bug that would have annoyed a few hundred early adopters now reaches tens of thousands before you have finished your coffee, so the gap between fixing it in an hour and fixing it in three days is enormous. OTA updates turn what could be a fire into a non-event.

What keeps this safe is separating preview and production channels, so updates are validated against a real build before they reach everyone. Anything risky sits on preview first. We confirm it behaves, then promote it to production.

What I have learned scaling this

Growth is a portfolio. No single channel got us here. Several smaller wins stacking up did.

Funnel work compounds with acquisition work. Improving conversion while you grow traffic is what makes the curve bend. Doing one without the other leaves most of the value on the table.

A great product is paramount. Everything above worked because the app works. The clones run a similar playbook with a weaker product and convert far worse. You cannot market your way out of that.

OTA updates reshape how you operate. Being able to fix production in minutes changes what you are willing to ship and how calmly you sleep. It turns a bad release from a multi-day emergency into a quiet patch.

Test earlier than feels necessary. We shipped the MVP with no automated tests to hit the timeline, and that debt got more expensive as we grew. A regression that once annoyed a few early users now reaches tens of thousands before anyone notices. OTA makes the fix fast, and skipping the bug entirely is faster still.

Where this goes next

We are still quite early. Six months ago Wellspoken was a few hundred users and a hunch, and the same loop that got it here (find channels that work, improve what they flow into, ship fast) has plenty of room left to run. The near-term focus is keeping the growth compounding and taking Wellspoken international, and there is a longer story to tell once we get further up the curve. That might be the third post.

Wellspoken is available on iOS and Android. If you have struggled to get your thoughts out cleanly the way I did, or you are building something on Expo and want to compare notes, reach out.

Growth
ASO
OTA Updates

Share article