Most people, when faced with an inconvenience in their daily lives, simply accept it. John McAvoy from Edinburgh decided to write code. With no experience in mobile app development, no investors, and no team. Today, his app has been downloaded over 5 million times, is used by 400,000 people monthly, and generates $30,000 a month.
The Idea That Started with a Cup of Coffee
John began his career as a graphic designer. At the same time, he became increasingly drawn to programming—JavaScript, server systems, databases. Not out of necessity, but out of curiosity: he wanted to understand how to create things from scratch.
The idea for the app came when he was working at a bus company in Edinburgh. Every morning, the same story: you need to leave home, stand at the bus stop, and wait for the bus in the Scottish rain—sometimes ten minutes, sometimes twenty. At that time, Uber had just emerged, and John was struck by one simple feature: seeing on a map how the car was coming to you. He wanted the same for public transport.
"If you have a problem and you solve it, there’s a good chance that millions of other people have the same issue," says John. This became the foundation of Momungo.
What is Momungo and How Does it Work
Momungo is an app for tracking buses and trains in real-time. To date, it covers over 160 cities worldwide.
The principle is simple: you open the app, see a map with nearby stops, click on the one you need—and you see not just a schedule, but the actual position of the bus or train on the map right now. The transport icon moves across the screen in real-time. This is what John calls the "magic moment"—it’s at this second that the user understands the value of the app.
But Momungo is not just a map with points. The flagship feature is called Trip Assist. When a user starts a trip tracking, the server system with machine learning begins analyzing everything happening on the route ahead. If the bus is delayed, if the user is at risk of missing a transfer—the app sends a notification and suggests an alternative route. All this happens automatically, without user involvement.
The business model is subscription-based. The basic functionality is free, but premium features, including Trip Assist, are available on a paid plan. There are three options: a weekly subscription for those who don’t want long-term commitments, an annual subscription with a seven-day trial period, and a one-time purchase forever for those who are fundamentally against subscriptions. The average revenue is $30,000 a month, almost entirely subscription-based.
The Journey from Designer to Developer
John started building the app with what he knew: first, he designed all the screens in Adobe Illustrator. Once the design was ready, he began coding—step by step, relying on his past web development experience.
The first versions were written in Xamarin using C#—not an ideal choice for mobile development, but something John was familiar with. These were months of trials, errors, and revisions. When the app finally worked, he rewrote it from scratch: the iOS version in native Swift, Android in Flutter, which had just been released and was perfect for an interface with maps and sliding panels. The rewriting took two to three months.
Today, the entire tech stack looks like this: the backend is on Laravel and PHP—"old and boring," according to John himself, but reliable. For analytics—Mixpanel with event tracking. Geographic load balancing through Cloudflare—about $90 a month. Animations are created in After Effects and converted to Lottie. For ASO research—Appfigures service. Subscription management—RevenueCat.
Infrastructure costs: about 20 dedicated servers cost $2,500 a month, third-party APIs for maps—another $1,000. Total operating expenses are around $3,500 a month with revenue of $30,000—margin over 85%.
Five Million Downloads Without a Marketing Budget
The main growth channel was optimization in the App Store—ASO (App Store Optimization). Essentially, it’s the same as SEO for websites, but for app stores: the right selection of search queries that users find the app.
John broke his approach into three steps.
Step One: Local Keywords. Instead of general queries like "bus tracker," he started adding specific geographical terms. It turned out that each city uses its own terminology: in New York, they say "MTA subway," in Chicago—"CTA L train." As soon as John began including these specific phrases in the app’s title, subtitle, and keywords, downloads skyrocketed. Simultaneously, he updated the screenshots: for each localization—a unique set featuring views of that particular city.
An additional trick: if you add keywords in the Mexican Spanish localization, they are indexed for the American App Store with the same weight as English ones.
Step Two: Finding Working Queries. John used two methods. The first—Apple Search Ads: launch several keywords, see which convert. The second—the App Store itself: start typing a query in the search bar and study the autocomplete suggestions. Most users choose the first or second option from the dropdown. These suggestions show what people are actually searching for. Since such queries are very specific, competition for them is low—getting into the top 5 is quite feasible.
Step Three: Ratings at the Right Moment. The App Store algorithm promotes apps with a constant flow of new ratings. The key word is "constant." John found the "golden moment" for the query: when a user clicks on a stop and sees a bus moving on the map in real-time—that’s when the app asks for a rating. At that moment, the person is maximally satisfied and is highly likely to respond positively. The result—75,000 ratings, a steady flow of which maintains high positions across all target queries.
How Conversion Grew from 0.5% to 8%
Until 2020, Momungo earned from banner ads—about $8,000 a month. When the pandemic destroyed the advertising market, John quickly switched to a subscription model. Revenue recovered, but the real breakthrough happened in 2021.
John began systematically testing paywalls—screens with subscription offers. In about two to three months, through ten consecutive experiments, conversion grew from 0.5% to 8%. Sixteen times.
The main discovery: when a user closes the subscription screen without buying anything, the app automatically launches a "reverse trial"—seven days of free access to all premium features without needing to enter card details. The user gets the full experience without any commitments—and is much more likely to convert into a paying customer afterward.
Key Lessons
John formulates two principles that he considers key.
The first: solve your own problem. When you work in the evenings and on weekends, you constantly hit walls. Only personal involvement in the problem gives you the energy to continue.
The second: trust the data, not intuition. In the first years, John focused on the number of active users—a nice number, but it didn’t drive the business. As soon as he switched to event analytics and began testing hypotheses through A/B tests, growth became manageable and predictable.
One person. One problem. One solution. Five million downloads.