Building a $5k MRR app while freelancing to keep the lights onIH+ Subscribers Only

Shaun Donnelly, founder of Personal Best

Shaun Donnelly built a hobby project, and he enjoyed it so much that he quit his job to pursue it. It's been a slow burn, but Personal Best is currently at $5k MRR, and he's freelancing to keep the lights on.

Here's Shaun on how he's doing it. 👇

I'm a software engineer in London, UK. I've been a developer for about 15 years, working across a few startups and larger companies. Currently, I contract part-time for a startup, splitting my time between that and indie development.

My main app is Personal Best, a workout tracking app for iOS. It started in May 2020 as a quick hobby project. We were in the COVID lockdowns, and exercising was the only thing getting me out of the house. I only intended to ship a very basic v1.0, but I enjoyed working on it so much that I wanted to continue.

Since then, it has grown to over 500,000 downloads and about 50,000 monthly active users. It's been featured on the App Store multiple times, and it even made a cameo in the WWDC 2026 keynote. I'm close to $5K MRR.

Since it was a hobby project, I didn't do anything to validate Personal Best.

The initial product was basic. It showed your top three workouts of all time, ranked by distance, energy, and time. I built it in about five days, following Paul Hudson's excellent SwiftUI tutorials at hackingwithswift.com.

SwiftUI was brand new then, and I was excited to learn it because its declarative nature aligned with the technologies I used at my day job (React). It was tricky initially because SwiftUI was an immature framework, and it still lacks many features. However, I believe constraints lead to creativity, so I always work around its limitations.

That said, I've enjoyed deleting significant workarounds and replacing them with pure SwiftUI solutions. For example, the code I used to generate custom images from workouts was a total mess. I was very happy once SwiftUI added image generation support.

The only change I've made since 2020 is adding Claude Code to my stack. I use Claude heavily now to write code, but I still review every line of code. I also design every screen and write every line of copy myself — despite what others insist, LLMs are not good at design, and they are even worse at copy. You can always tell when something was written with one.

Personal Best homepage

The main challenge was prioritization and finding time. For Personal Best's first few years, I was full-time employed, and finding time to work on it was really hard. Sometimes, after a busy day at work, the last thing you want is to spend even more time coding — you just want to decompress with a game or movie, or do social things.

I tried many things over the years, but nothing really stuck until I switched to working part-time. That gave me the time I needed, and since then, progress has skyrocketed.

Finding a clear product direction has also been hard. At first, I just added features because I thought they sounded cool or a user asked for them. As a result, the app became a mess with no clear identity, just a collection of unrelated features (think Jira).

I recently defined the app's purpose and have since evolved it in that direction — to be a workout coach benefiting everyone who exercises, whether a marathon runner, a snowboarder, or someone who just walks their dog a few times a week. If I started over, I'd do that upfront.

PB is free to use, with an optional 'Personal Best Pro' membership introduced in late 2020. It's a subscription, and a lifetime option is also available. Pro members get loads of extra stats, heart rate zones, form history, unlimited goals, and some other things.

It's a tricky balance. You want the free tier to be compelling enough that people still use it, but restricted enough that people want to subscribe. I'm still figuring that balance out; most users are on the free tier.

I've run loads of experiments on pricing and trial length, and I will continue to do so as the market and the app evolve.

I made a decision in the beginning that has paid dividends: not having any server-side component; PB runs completely on your phone. This means every subscription is almost 100% profit; I have virtually no marginal costs.

As far as growth, honestly, I've been lucky. I've done almost no paid marketing, so it's all been organic. It was very slow initially, then it picked up pace once I gained Apple's attention and it began featuring on the App Store.

Apple loves it when you adopt their new features or find interesting and novel ways to use their first-party APIs. A good way to get the attention of the editors is to look for opportunities to do that, and then submit a nomination to be featured on App Store Connect whenever you have something notable to share. At the end of the day, the editors are just regular people trying to find compelling stories, so make sure that you give them one.

Other than that, I did some product-led growth, like an image-sharing feature, so you can easily turn your workouts into editorial-quality images to post on social media. Most workout apps offer this now, but I think I was one of the first.

I do have X, Bluesky, and Instagram accounts for the app too, although I no longer use the X one as I don't agree with the worldview of its owner.

And there are little things too. Whenever a user reports a bug, I send them a promo code for a year of the Pro subscription. It's a way to turn a frustrating moment into something nice. And I always ask people to share it with their friends and family if they enjoy it.

Having a community of like-minded people has helped massively. Being indie can be lonely, and you need people to share tips, socialize, and vent with.

A particular shout-out to two people — Rauno and Tai, both lovely people who have helped me with ideas, motivation, and by being good friends throughout.

My advice? Don't get discouraged if things don't take off right away. This is a cliché, but it's true: it's a marathon, not a sprint.

Have good people around you to get you through the dips and to celebrate the peaks with. Be generous with your time and help others out; you might be an indie developer, but you're part of a community, and it's your job to pay it forward and be a force for good in the world.

And lastly, don't be a dick. Don't make things that make the world worse. If you're going to do that, you might as well stick to a corporate job!

Eventually, I plan to work full-time on my apps and stop contracting on the side. I'm not quite there yet, but I'm heading in the right direction.

Check out my blog at codakuma.com, follow me on Mastodon at @shaundon@mstdn.social, and get Personal Best at getpersonalbest.com.

Indie Hackers Newsletter: Subscribe to get the latest stories, trends, and insights for indie hackers in your inbox 3x/week.

Support This Post

Leave a Comment

  1. 1
    Freelancing to fund a SaaS is one of the most underrated paths in indie hacking. You're not "failing to go full-time" — you're building on solid ground. The fact that Personal Best is at $5k MRR with zero acquisition costs is a signal most people miss: retention-led growth is the only kind that scales without burning you out. Shaun's story is one of the most honest ones I've seen on here. Real builders, real tradeoffs. Thanks for sharing it.
  2. 1
    The slow-burn path and keeping costs at zero really resonate. Congrats on the App Store feature—how are you thinking about balancing Personal Best’s growth with client work now that it’s at $5k MRR?
  3. 1
    This is a sustainable path for many builders. One practical guardrail is to keep freelance cash flow and product metrics in separate monthly views, then reserve a fixed number of build hours rather than whatever time is left over. A small runway target and a written “not now” list can make the transition away from contracting much less risky.
  4. 1
    I think this is a much more realistic version of entrepreneurship than the usual “quit everything and go all in” story. Keeping freelance income while building a product can reduce a lot of financial pressure and give you more time to make rational decisions. The downside is obviously that you’re splitting your energy between client work and your own product. But there’s also an advantage: you don’t need the product to become profitable immediately, which means you can be more selective about what you build and who you build it for. $5k MRR while maintaining another income stream sounds like a pretty solid position to be in.
  5. 1
    The zero-infrastructure architecture creates a strategic option most founders miss. With near-zero marginal cost, freelancing isn't survival — it's a deliberate removal of time pressure. Most indie devs who freelance alongside a product are racing infrastructure costs that scale with users. Your cost curve is flat, so 50K monthly actives cost essentially nothing to serve. That changes every decision. The conversion funnel is where the leverage sits now. 500K downloads to 50K MAU to ~$5K MRR suggests a fairly low free-to-paid rate. Fitness freemium apps typically convert at 3-5%. Even half a percentage point improvement at your current MAU volume would meaningfully shift the MRR without acquiring a single new user. The late purpose definition probably explains part of that gap. When a product's identity is diffuse, users struggle to see what they'd pay for — so they don't. Narrowing the one-sentence job tends to lift conversion because the upgrade decision becomes obvious faster.
  6. 1
    Your comment about it being a marathon resonated with me. As an indie developer who also works full time I try to just move my project further a tiny bit every week. It’s actually made me much better at prioritization. Both at work and with my project I’m finding that I’m much more ruthless about cutting scope and how I spend my own time.
  7. 1
    > Appreciate the breakdown, Shaun. > I saw your note about LLMs not having a feel for copy or design, and while that’s definitely true for generic, surface-level prompting, what’s happening beneath the surface is a much bigger shift: the evolution of the human and AI collaborative experience. > When you aren't treating AI as a vending machine for boilerplate text, but as a dedicated collaborator that learns your cadence, diagnostic approach, and perspective, the line starts blurring in a fascinating way. Real collaboration gets to a point where intent is matched almost instantly—anticipating the direction before it's even spoken. > That speed and depth of synthesis are what scare a lot of folks in the AI debate, but we’re on the frontier of something massive. With how fast things are shifting toward quantum computing and breaking past traditional bottlenecks, we’re rethinking limits that people used to treat as set in stone. > Congrats on hitting $5k MRR and running lean on-device. Keeping things efficient without unnecessary bloat is where real longevity comes from.
  8. 1
    Super story, Shaun! Building a hobby project during lockdown and growing it to over 500k downloads and a cameo in the WWDC 2026 keynote is unreal[cite: 3]. Balancing contract work while bootstrapping Personal Best to $5k MRR is the ultimate indie hacker grind[cite: 3]. How do you manage your weekly energy split between client work and your own iOS app?
  9. 2
    The no-server approach is such a good call for a solo app. Almost no marginal cost changes the economics completely.
    1. 1
      Agreed. One of my projects started as web/server based app and grew into an iOS app. I'm finally migrating everything to just iOS based to minimize on server costs. I keep the no-server mindset all the time now when thinking about new projects.
  10. 1
    The lifetime option is the thing I would look hardest at. I have watched founders use lifetime to fund a slow year and then realize they sold their best cohort's future revenue at a discount, and it quietly caps the MRR number they are trying to grow. With near zero marginal cost and 50k monthly actives, the leverage is free-to-paid conversion, not a one-time payment from the people who already love the app enough to pay twice.
  11. 1
    great initiative
  12. 1

    The part about defining the app’s purpose really resonated with me. It’s so easy to keep adding features when users ask for them, and only later realize the product has lost its focus. I’m building a SaaS myself and I’m learning that having a clear “job” for the product makes prioritization much easier. The 5-day hobby project turning into 500k+ downloads is also a great reminder that you don’t always need to have the whole plan figured out from day one.

  13. 1
    The purpose reset is a great lesson: keeping the one-sentence job visible in the backlog seems like a strong filter after a feature-heavy phase. I’ve found part-time work only stays sustainable when product time is scheduled before the week fills up, not treated as leftover hours. Did the clearer purpose change which requests you said no to, or mostly which features you built next?
  14. 1
    The shift from time-for-money freelancing to a product is hard; protecting one recurring block for product work seems more sustainable than waiting for spare time. Defining the app’s purpose before adding more features sounds like a key inflection point.
  15. 1
    Interesting point. How are you currently handling user support as your customer base grows?
  16. 1
    The part-time contract detail is the underrated bit of this story. I run a small studio alongside my own products, and the thing that nearly killed both was hourly client work with open scope: it expands to fill every gap the product would have used. Two things fixed it. Fixed-price, written-scope projects only, so client time has a hard edge and I can actually block out product days. And treating the products as the studio's portfolio: prospects can click through a live thing I built for myself, which closes more work than any case-study page, and it makes product time defensible as marketing rather than a hobby. On the "collection of unrelated features" problem, what worked for me was writing the one-sentence job of the app at the top of the backlog and deleting anything that didn't serve it. Painful for a week, then a relief.
  17. 1
    Thank you for sharing
  18. 1
    Yeah, this was a good read. From a five-day hobby project during lockdown to 500k downloads and nearly $5k MRR while still freelancing is solid progress. I especially liked the decision to keep everything on-device. That changes the economics completely. And the advice about not making the world worse is the kind of thing more people should say out loud. Hope you’re looking after yourself through the slower months. Keep going — you’re building something worthwhile. I would love to help with you as AI engineer
  19. 1
    Starting it as a hobby and sticking with it long enough to turn it into a business is honestly pretty motivating. How did you stay consistent with it when you weren't making money from it yet?
  20. 1
    Woo,Thank you for sharing, I have gained a lot from it
  21. 1
    I can sense your love for life and your goodwill toward the world.
  22. 1
    A $5k MRR app can be built by balancing freelance work for steady income while gradually developing and marketing your own product. Focus on solving a clear customer problem, gaining paying users, and reinvesting revenue into steady growth.
  23. 1
    nice. how did you get your first users?
  24. 1
    Keep going im doing the same right now working on new APP mrr
  25. 1
    Congrats on building with real constraints—freelancing forces ruthless prioritization. For freelancers/agencies, the bottleneck is often turning a scope conversation into a trustworthy, paid commitment. I’m building ProposalFast for that: an AI proposal workspace that stays fact-bound (fees remain placeholders, not invented numbers), with a client portal, e-sign, and Stripe. It’s free to start; Founding Pro is $29/mo: https://proposalfast.ai. If an agency wants the system set up for them, there’s an optional $497 Proposal System Setup: https://buy.stripe.com/28E14f0HU7hH0My3cU7g401. We’re also live on Product Hunt: https://www.producthunt.com/products/proposalfast-2?launch=proposalfast-2.
  26. 1

    This is really inspiring. I think most solo founders underestimate how much time is eaten up by boring payout reconciliation and bookkeeping work while building

  27. 1

    The part about removing the server-side component really stood out to me. 500k downloads and 50k monthly active users with almost no marginal cost is pretty impressive. Also interesting that the app started as a 5-day hobby project during lockdown and slowly turned into a real business. Definitely a good reminder that not every project needs to have a perfect plan from day one.

  28. 1
    The 500k downloads vs 50k monthly actives detail was the bit I kept thinking about. A lot of founders would chase downloads, but the image-sharing feature and replying to bug reports seem much closer to the real loop. Did the App Store features come before or after you narrowed down the app’s purpose?
  29. 1
    Seems like a cool idea, and I completely relate to feeling like it's impossible to work a full-time job while starting a business, as someone who is in university.
  30. 1
    # I Built FlowDesk to Make Business Automation Less Complicated Over the last few months, I’ve been working on **FlowDesk** — a business automation platform designed to help companies manage their operations from one place. The idea came from a problem I kept seeing again and again: Businesses use one tool for CRM, another for tasks, another for workflows, another for HR, another for finance — and eventually the team spends more time managing tools than actually managing the business. So I started building FlowDesk. ## What is FlowDesk? FlowDesk is a modular business automation platform where businesses can manage things like: * CRM and customer management * Tasks and team activities * Workflow automation * Projects * HR operations * Inventory * Finance * Notifications * Forms and internal processes * API and webhook-based integrations But the main goal is not simply to put a lot of modules inside one dashboard. The real goal is to **connect business processes together**. For example: A new customer submits a form → create a CRM contact → assign a sales task → notify the responsible employee → update the pipeline → trigger another workflow automatically. Instead of employees manually moving information from one system to another, the system handles repetitive operational work. ## The Main Goal My goal with FlowDesk is simple: **Turn repeatable business processes into automated workflows.** Every business works differently. A real estate company may need lead automation. An agency may need project, client and invoice workflows. A distribution company may need inventory and approval automation. A service company may need CRM, employee management and customer portals. That’s why I’m building FlowDesk around a flexible workflow engine instead of forcing every business into the same process. ## What I Learned While Building It One thing became very clear while working on this project: Most businesses don’t actually need “more software.” They need their existing processes to work together. The interesting part of business automation is not building another CRM screen or task manager. It is figuring out: **“When this happens, what should happen next automatically?”** That is the problem I’m most interested in solving. ## Looking to Connect With Businesses & Founders I’m continuing to improve FlowDesk, but I’m also interested in talking with founders, agencies and businesses that have repetitive manual processes they want to automate. If your team currently spends too much time on spreadsheets, manual follow-ups, lead management, approvals, internal operations or moving data between different systems, I’d be interested to hear how your workflow currently works. I also work on **custom business automation platforms, SaaS products, CRM systems and workflow-based applications**. So if you're building something similar — or you have a business process that you think should be automated — feel free to reach out. I’d be happy to discuss the problem, even if you’re still at the idea stage. **FlowDesk:** https://preview.wstacks.com/flowdesk Would also love feedback from other Indie Hackers: **What part of your business would you automate first if you could?**
  31. 1

    keep going fellow human/dev wish you the best

  32. 1
    Thanks for this case study , i found this inspiring for some one new in field
  33. 1
    Really enjoyed this case study. The journey from a hobby project to 500K+ downloads and nearly $5K MRR shows how consistency, clear product direction and organic growth can compound over time. The decision to keep the app serverless and focus on the core product is especially interesting. I also follow startup, AI and technology developments on Pakistani TechNama. https://pakistanitechnama.pk/
  34. 1
    It seems very cool