It's Jennie.
Today I've got a story about a transit app that grew from $8K to $30K/month without spending a single dollar on ads.
Usually, to hit $30K monthly revenue, you need a decent UA budget, right? Instagram ads, Google Ads, influencer marketing... But this team did none of that. They built all their traffic through ASO (App Store Optimization) alone.
But here's the really interesting part. There was a time when no matter how much traffic came in, it didn't convert to revenue. Their paid conversion rate was 0.5%. Out of a thousand downloads, only five people paid.
They fixed that by redesigning their onboarding and paywall — and pushed conversion to 8%. That's 16x.
What the app does
The app is called Momego. It shows real-time bus and subway arrival times. Think of it as "take the bus instead of Uber" — and when you commute every day, knowing exactly where your bus is right now matters a lot.
They cover 160+ cities — London, New York, Madrid — with a 4.6-star rating (5,200 reviews). The company is Transit Now Ltd, a small team.
They rebuilt the entire app from Xamarin to Swift
They originally built it with Xamarin. Cross-platform meant they could cover iOS and Android at once, and ship faster.
But then problems started showing up.
A transit app lives and dies on GPS, background location tracking, and real-time notifications. Xamarin made it hard to use these native features properly. Background location on iOS was clunky, and the app felt heavy and slow.
So they rebuilt the entire app in Swift from scratch. Threw away all the existing code and went fully native. It took longer, but the performance difference was night and day — and they could stack features like real-time tracking, offline maps, and widgets on top of a solid foundation.
Zero ad spend. Here's how they built traffic with ASO alone
This is the part where you'll learn the most. This team has never run a paid ad. All their traffic comes from ASO (App Store Optimization).
Here's exactly how they did it.
1. They change the app name for each country
This is the core move. Most apps keep one name everywhere. Momego doesn't.
- US App Store: "Momego: Bus & Transit Tracker" (Live Subway and Train Times)
- Spain App Store: "Momego: Bus Metro Cercanías" (Madrid, Barcelona, Valencia...)
- UK App Store: "Momego: Bus & Transit Tracker" (highlighting Transport for London)
They put the exact keywords people in each country actually search for right in the app name. Americans search "subway tracker," Spaniards search "metro cercanías." Same app, different search terms for different markets.
2. They build city-specific SEO landing pages
If you visit Momego's website, there are separate pages for each city.
trymomego.app/nyc→ "The ultimate transit app for NYC"trymomego.app/london→ Lists every UK transit operator- Each page lists specific operators and routes for that city
Why does this matter? Because people googling "NYC bus tracker" or "London tube times" land on these pages. They're doing ASO outside the App Store too.
3. They list every single transit operator in the App Store description
The App Store description literally lists out: "Transport for London, West Midlands, Manchester Metrolink & Bee Network, First Bus, Stagecoach, Arriva, National Express, Brighton & Hove Buses..."
Because people search by operator name — "Stagecoach bus times" or "MTA subway app." They make sure they rank for every single one of those queries.
4. Country-specific screenshots
The App Store screenshots use the same copy — "See when your bus or train is coming," "Watch your ride move on the map" — but the data inside the screenshots changes per market. New Yorkers see "M7 Harlem," Londoners see "Piccadilly Circus."
In short: Their ASO strategy isn't just "optimize keywords." It's customizing the app name, description, screenshots, and web pages at the country and city level. That's how they built consistent organic traffic with zero ad spend.
Conversion rate: 0.5% → 8%. They only fixed onboarding and paywall.
Traffic was coming in through ASO, but it wasn't making money. The paid conversion rate was 0.5%. Out of 200 downloads, only one person paid.
Most people would say "lower the price" or "drive more traffic." This team went a different direction. They dug into why people who downloaded the app weren't paying.
They completely rebuilt onboarding
The old onboarding hit you with "Allow location access" the moment you opened the app. From the user's perspective, you don't even know what this app does yet, and it's already asking for permissions. Naturally, the rejection rate was high.
The new onboarding has 6 screens:
- "Get there, on time, stress-free." — First, show the app's value. Social proof too: "Over 5 million riders, 50,000 5-star ratings."
- "Share your location" — Ask for permission after they understand the value. Explain why: "Momego will deliver the most accurate times from your location."
- "Never miss your stop again" — Show the stop alert feature. "We'll let you know when your stop is coming — even underground."
- "Be the first to know" — Show delay alerts. "Momego tells you about problems before you leave."
- "Join millions saving time" — 7-day free trial CTA. "Try it completely free for 7 days."
- Paywall — 7-Day Free Trial ($0.48/week → $24.99/year), Pay-As-You-Go ($4.99/week), Lifetime ($89)
The key principle: "Value first, ask later." Once users feel "okay, this is actually useful," they're way more likely to accept permissions and payments.
They used free trials strategically
For users who didn't pay upfront, they offered a 7-day PRO free trial. "Enjoy a week of PRO on us." Smart routes, real-time alerts, delay warnings... they let users experience PRO features first.
After using PRO for a week and feeling "I can't go back to the free version," the conversion to paid was much higher.
A/B testing was everything
Here's the crucial part — they didn't nail this on the first try. They A/B tested everything.
- Tested different onboarding screen orders
- Tested price display formats on the paywall (weekly vs annual vs lifetime)
- Tested 3-day vs 7-day free trial periods
- Tested where to show reviews/ratings in onboarding
- Tested CTA button copy ("Continue" vs "Start Free Trial" vs "Next")
One change at a time. Check the data. Ship the winner. Test the next thing. Repeat.
The result: paid conversion went from 0.5% to 8%. That's 16x more revenue from the exact same traffic.
$8K to $30K
Steady organic traffic from ASO, combined with a 16x improvement in conversion from onboarding/paywall optimization, pushed revenue from $8K to $30K per month.
Nothing changed about the marketing channel. They didn't start running ads. There was no viral moment. They just got better at converting the people who were already coming in.
Running it on $728/month
Operating costs are lean too. About $728/month.
| Tool | Purpose | Monthly Cost |
|---|---|---|
| Laravel | Backend | Free |
| Adobe | Graphic Design | $99 |
| LottieFiles | Animations | $19 |
| Appfigures | ASO Research | $200 |
| RevenueCat | Subscription Management | $300 |
| Mixpanel | Analytics | Event-based |
| Cloudflare | CDN / Load Balancing | $90 |
| OpenAI | AI Assistant | $20 |
Notice they're spending $200 on ASO research (Appfigures)? Zero on ads, but they invest in ASO tools. That tells you everything about this team's marketing philosophy. Traffic comes from search. Revenue comes from conversion.
What to take away from this
Three things.
First, ASO isn't just "stuff some keywords in." It's changing your app name per country, building city-specific landing pages, listing every transit operator by name. You're planting every word that lives in a searcher's head. Momego proved you can build real traffic without ad spend — if you do ASO at this level of depth.
Second, there's no point pushing more traffic when your conversion is 0.5%. At 200-to-1 conversion, even 10x the traffic barely moves the needle. But when you fix the product — onboarding and paywall — and push conversion to 8%, you get 16x more revenue from the same traffic. Fix the product first. Then turn on growth.
Third, decide with A/B tests, not gut feeling. Onboarding screen order, price display, CTA copy, trial length — they tested everything with data. Not "I think this might work better" but "this actually performed better." Going from 0.5% to 8% wasn't one genius idea. It was dozens of small tests stacked on top of each other.
— Jennie
Responses (0)