15
20 Comments

How to Build and Grow Your Own Workout App for Mobile Devices
IH+ Subscribers Only

Hello! What's your background, and what are you working on?

Hi there! My name is Jérémy Mouzin. I'm a software engineer from Grenoble, France. After school I worked for six years in a consulting agency before I decided to quit to create my own business.

I've been working for four years now on an Android app called Hercules, it helps you manage your workout performances easily and stay motivated to achieve your fitness goals. It has been featured twice by Google worldwide, and it ranks #2 on the French Play Store.

I make around $3000/mo after Google's cut (30%) and VAT.

Hercules website

What motivated you to get started with Hercules?

After quitting my job I wanted to build a business and earn some passive income. I thought making an app would be perfect for that. At that moment I was working out several times a week with a popular method in France. I wanted an app to track my progress and get rid of my pen and paper.

Unfortunately, after trying literally several hundreds of them, I didn't find any app where I could add my own exercises, pictures, and workouts, and then hit play and follow the instructions on the screen. So I decided to create my own app from scratch. I didn't know a thing about bodybuilding (just the method I was following), and I had to learn Android development in the process too.

What went into building the initial product?

I wrote the first line of code in 2013, October 27th. To make a long story short, I negotiated a six-month part-time contract with my latest client after quitting my consulting agency. This way I could spend all my evenings, plus weekends and Mondays, on the app. 3 days in a row every week — perfect to get things done!

I was progressing quite slowly because I had to learn the Android framework from scratch, plus the best practices. (I'm a perfectionist — not the best quality to ship early.) I had an old phone with Android 2.1 Froyo so I developed the app to be compatible with this version. But it was very old at that time so I had to use the compatibility library, making development more painful and slow.

That was a huge mistake, I should have bought a newer phone and started developing on a more recent version of Android. It would have been easier and faster. But I was a greedy idiot: I didn't want to spend money on a new phone. I learned the hard way that losing several weeks of development costs so much more than a $150 phone! Never spend your time to earn money; spend your money to earn time.

At the end of my part-time contract, I created my company and started working full time on this project. Today I estimate that the first release of the app took me approximately nine months to build at the pace of a normal job. The first version was pretty small but fully-customizable from day one. That's why it took forever to build.

I could have simplified the app by simply replicating the workout method I used into it, but due to intellectual property I couldn't do that — it would have been illegal.

The interesting thing here is that at the very beginning, adding fully-customizable exercises, pictures, and rest times in the app was an extremely painful process. But today, this exact same feature makes the app so appealing to my users. They are delighted to be able to set different reps, weights, and rest times for each set! Lots of trainings now use this technique to increase muscle gains, so Hercules is perfect for them.

How have you attracted users and grown Hercules?

Because I was a total newbie in the bodybuilding domain I registered on the #1 bodybuilding forum in France, musculaction.com, to learn more from my future customers. I contacted the administrator and he accepted to add a specific topic for Hercules so I could talk about it.

I attracted more people on this thread by answering questions on the forum. I added a link in my signature so people could click on it to see my app. Also, I added an export feature in phpBB format in Hercules so I could share all my weekly performances on the forum with a generated by Hercules tagline that made users curious.

All my first users came from here. I didn't launch the app, because I didn't know anything about building a community or managing mailing lists or launching products. So I ended up soft launching it on the forum one year after the first line of code. Users gave feedback and asked for new features. They were thrilled to participate on the next features of the app, which they used daily.

Success didn't come overnight though. Even if people were satisfied on the forum, I didn't rank well on the Play Store. My app was buried in the goddamn sea of thousands of fitness apps. I had to do something to get through the noise.

So what did you do? What are the best strategies to rank on the Play Store?

Here is the list of almost everything I tried. Thanks to my blog (it's in French — sorry guys!) I documented everything I did, so this list is a goldmine for any app developer.

The secret to ranking on the Play Store is to market your app outside of it. You must drive traffic from the outside to the Play Store before organic growth starts to kick in.

But first, let's talk about ASO (App Store optimization). That's the basic thing to do to rank well. Don't even think one second to rank well without doing it. Everybody does it so you have to do your homework too. This is a summary of things to know. I dedicated a full post about this subject on my blog:

  1. Write your app description not for your users (because nobody reads it) but for the search engine. To know what keywords to use, do this: type the first letters of a keyword that a user could enter to search for your app in the Play Store. The auto-completion feature of the Play Store will propose several queries for you. These queries are the most common searched queries by people. Write down keywords and expressions of the top 3 queries and do this again and again until you have lots of keywords.
  2. Put these keywords and expressions at least 5 times in your app description and use the most common one for your title. Write the full text of your app description so a human can read it and enjoy it; don't stuff it with keywords or you'll be penalized. Just be sure to insert in an elegant way all your keywords and expressions at least 5 times.
  3. If you can afford it, translate your app into the most important languages, English, French, German, Spanish, Italian, Russian. 40% of my revenue is made abroad. Don't forget to translate your screenshots too, and localize them. For example, in France we use the kg unit by default, in US it's lb — these little details make the difference.

Now let's talk about the outside marketing of an app. The central point here is to ask yourself this question: How can I drive traffic without using the Play Store? How can I attract people who are not searching on the Play Store to be redirected to my app?

Hercules on the Play Store

There aren't thousands of ways to find new things online. When people are looking for something, they Google it. So here is what you can do:

  1. Build a website and do some SEO: I built mine in a few hours with Strikingly. There are tons of websites builders out there to do this easily and quickly. Don't lose time on this. Subscribe to one of these services.
  2. Content marketing: Open a WordPress blog and write a post whose title is "The best app for X!" I did this and got a ton of traffic. In this blog post I compare 5 workout apps including mine of course and do pros/cons.
  3. BONUS TIP: Use the year in your title. Because we want fresh content we often write "Best android workout app 2017". Oh! What a coincidence, I have exactly this kind of blog post here. I even pushed it further by just talking about my app. The title is basically "the best android workout app of 2017", and I posted it on January 1st, 2017. I did this also because the craze of new year's resolutions is a huge booster for my sales. So I wanted to be ready ASAP.
  4. Read and apply everything you learn from the Google book: The Secrets to App Success on Google Play
  5. Increase your ratings with this trick: make people rates your app within it. If they rate it 5 stars, redirect them to the Play Store so they can really rate it. Otherwise, open their email app and make them tell you what could be done to rate it 5 stars. This way you filter out bad ratings and you get valuable feedback (which is the most important thing for making your app better). Users don't know they can't rate an app from within it.
  6. Try to be featured by Google: I've been featured twice by Google and asked them how they detected my app. They have automated systems that monitors the average number of downloads and the velocity (how many downloads you get in a short period). If you get a huge velocity, it will trigger their system and they will contact you. I used a service called AppGratis — that is unfortunately closed now — that let me push Hercules for free for 24 hours to their community. I got 7,500 downloads in one day. Several days later a guy from Google contacted me to feature Hercules. Note that you must comply with their Material Design Guidelines to be featured. I had to make some improvements in my app before they featured it, but it was a very good experience and it improved my rankings worldwide.
  7. App icon: make it follow the design guidelines too. Make it modern, smooth.
  8. A/B testing: the developer console lets you do some A/B testing on your title, description and icon. So use it to test what gives you the best conversion rate!
  9. Blogs: contact some blogs related to your market and propose some guest posts to talk about the app. Do some free partnerships. Talk about the blog and they will talk about you. Exchange links. That's good for SEO and long term ranking.
  10. Answer to questions on Quora that relate to your business or application. For example, if someone ask for the best workout app on mobile you should definitely answer to this! That's free advertisement.
  11. Facebook page: you must go find people where they are. Since I opened my facebook page for Hercules I have more visitors everyday on my website and on the play store listing. People share interesting stuff on Facebook, so publish regularly everywhere.
  12. Social media: in general, you should publish interesting stuff online so people can share it. But I won't talk more about this because I don't manage my Twitter/Instagram accounts very well… So try to find the best media channel to reach your users where they are, and make them come on the Play Store.

I did all these things along the way and managed to rank better over time. But it takes a lot of time. And your best friend here is good word of mouth. In fact, the most powerful tool to grow any product is word of mouth. So make your product awesome and people will market it for you!

What's your business model, and how have you grown your revenue?

Hercules is free to download with full features. You can use it for free for seven days. After that trial period, you can't use the app anymore and you have to unlock it by paying $9.99.

Most of my revenue comes from people unlocking the app. But I do earn some money in a new "shop" section within the app, where I sell ebooks (via Gumroad) and workouts. (This is only available in the French version of the app, as I wrote the ebooks/workouts in French.) I also do some affiliate marketing where I sell supplements and proteins, but that's a very small part of my revenue. The nice thing when you sell ebooks through Gumroad is that you don't owe 30% to Google.

I tried to make money from advertisement, but it didn't work at all. People use the app to do their workouts. They are focus so they have no time to click on an ad when using the app. I had some terrible conversion rates and didn't make a lot of money with ads. I stopped almost immediately, because it didn't work and because I hate ads.

Anyway, I started charging for my app from day one, because I wanted to make a living out of it. I set the very first price to $0.99. There weren't that many features at the time, and it's always difficult to put a price tag on a product, but people paid for it. Some said that it was cheap and other said it was expensive. I realized very soon that making a lot of money from an app would be quite hard.

Moreover Google takes 30% and VAT 20% when I sell to a French customer. Today 60% of my customers are French. I get only 58.3% of profit after a sale. The first people that bought my app were the users that were following me on the forum. They bought it just to support my hard work. It was nice, but I knew I needed more to make a sustainable business.

To grow my revenue I tried advertising on Google Play and Facebook, but I couldn't have a positive ROI, so I lost some money here. I continued adding new features over time, and people complained it was too expensive. I was like, "What?! I worked for several years on this and you don't want to pay even $1 for it! Seriously? What's wrong with you people?"

So I tried to learn how to make more money from a product and read a few blog posts about this. I stumbled across one post that talked about price elasticity. So I simply raised my price from $0.99 to $1.99 without changing a thing about the app. And two things occurred. First, people stopped complaining about the price, and even told me it was too cheap (!!). Secondly, my revenue increased.

I thought raising the price would make fewer people buy the app, but it increased the sales volume. I didn't understand why. But after a while I figured it out: value is connected to the price. If you sell something cheap, people will think it doesn't provide a lot of value because the price is so low. Raise the price and they will definitely reconsider their thoughts. So I gradually raised the price from $1.99 to $2.99, and then $6.99, and now $9.99! Each time I shipped a big feature I raised the price.

It's a matter of equilibrium. You need to find a way to maximize your profits, not the number of sales. If you sell 10 units at $5 you earn $50. But if you sell 6 units at $10, you earn $60. That's much more, even if your number of sales decreased. Moreover, you have less customer support to do and the quality of your customer is better because someone who paid a high price is more engaged in your product.

Today I sell an average of 570 unlocks/month. Here's my revenue from this year (for unlocks only):

Month Revenue
Jan 2017 3232
Feb 2017 2592
Mar 2017 2778
Apr 2017 2712
May 2017 3331
Jun 2017 3468
Jul 2017 3198
Aug 2017 4152

2017 revenue. Unlocks only.

And here's a broader look at my lifetime revenue:

Month Revenue
Oct '14 8
Jan '15 292
Apr '15 266
Jul '15 528
Oct '15 914
Jan '16 2159
Apr '16 1295
Jul '16 972
Oct '16 2856
Jan '17 3232
Apr '17 2712
Jul '17 3198

Lifetime revenue. Quarterly.

My revenue really started to kick off this year. With the new year's resolutions and some new features that people wanted, it started to spread all over the place. I got emails from users telling me, "I asked guys in my gym which workout apps were good and everybody told me Hercules is the best so I tried it and I purchased it immediately." How awesome is that kind of comment? I love it!

What are your goals for the future?

Now that Hercules brings me some passive income (even if I need to do some customer support every day and continue to fix bugs and add new features) I want to start a new business without the drawbacks of an app. I've set some specific goals to achieve for my next project.

I'm currently working on finding the best stack to use to try an idea fast (buy a domain, set a landing page, drive some traffic, see what happens) and in the cheapest way possible. I won't make the same mistake of indefinitely developing an MVP. I should even try to test my idea without a line of code.

I will test one idea per month every month until I get some real results.

What have your biggest challenges been? And would you do anything differently if given the chance?

Developing Hercules was technically difficult. I had to learn everything from developing for Android to designing an app to marketing it. I thought that building a good app would be enough, but it's not. It's just the first step. You need to market it like hell to get something in return, and I hate marketing!

Also, I made the mistake of developing on Android first (because I knew JAVA) instead of iOS. But iOS users are more willing to pay for apps. They have more purchase power. There is more competition for sure too. But every day I have guys asking me when Hercules will be on iOS. And I say, "Never." I don't have the energy to do everything again on iOS.

If I had to start over again, here are the exact steps I would take (these steps are useful for an app or any other product):

  1. First, build or join a community or mailing list of potential users and customers. Get to know them very well and, more important, get to know their pains
  2. Find a solution and draw some screenshots of the app or product you have in mind; do not produce a single line of code
  3. Test your idea by doing a landing page, patreon page, kickstarter, or whatever to make people pay before building anything. And I mean PAY — they must enter their credit card info here. Someone telling you he or she would buy your product is NOT an actual customer that will purchase your product when it's out.
  4. If more than 10% pay, build the product, or go back to #1

What's your advice for indie hackers who are just starting out?

Read! A lot!

There are tons of blogs posts and information available for free that will help you save tons of time and money. Educate yourself, and start with a little project that should not take more than a month to launch from start to end.

Read this book: Will It Fly from Pat Flynn. It pointed out almost every mistake I made. Everyone should read it before starting a new business.

Also, learn design because design will make the difference between you and your competitor. Read Don't Make Me Think from Steve Krug, which just opened my eyes on how crappy my first app versions were! I'm still learning design, but I made huge improvements in this area, and users feel it.

Don't hesitate to spend money on online trainings, even if it's several hundreds dollars. It's worth it!

Last but not least, if you want to get things done, set a deadline. ALWAYS. Otherwise you'll never finish anything. I've put out one new version of Hercules every single week (on Fridays) for the first three years of development. The app counts now 137 files and 42,000 lines of code. I couldn't have done that without this strict way of working.

Where can we go to learn more?

I hope you enjoyed reading my journey to where I am now! Thanks for having me on Indie Hackers, Courtland. Let me know in the comments if you have any questions or suggestions — I would love to read them all!

and
  1. 1

    Herkule awesome story thanx for inspiration so much! Would you mind sharing what kind of cold email you sent to forum administrator so that he accepted your thread?

    1. 1

      Hi,

      Just be short and to the point. Something like :

      "Hi, I'm building a mobile app to do X and I want to get feedback from your community. I read your forum guidelines and I'm not sure if I can post a link to my app without violating them so I ask first your permission to do so.

      Here is the message I want to post on your forum to get feedback: . Does it respect your guidelines? If not, how should I modify it to respect the rules? Thanks."

      Something like this. Most of the time, just tell him that you need guidance and ask for permission to post the thread.

      Be respectful.

      Good luck,
      Jeremy.

      1. 1

        Wow, thanx man for the share, being respectful goes a long way. Its exciting really that there are so many niches and forums to use this technique on, an online acquaintance also used a similar approach so this is a great confirmation that forums really work to get traction.

  2. 1

    Awesome post man. I'm starting to learn how to code myself (failed multiple development projects in the past working with freelancers). any tips or resources you recommend? Wish you the best of luck with your app!

    1. 1

      Thanks for your message! Learn to code with a project in mind. Work on a real (but little) project. It's the best way to learn.

      You can find free resources online to learn how to code nowadays, use google to find them, they're plenty of them. Read code from others too, you'll learn a lot. And bookmark StackOverflow.com forums too! Good luck to learn how to code, it's an awesome skill to develop!

  3. 1

    You've given it a lot of effort, so, for your future projects you want to go the other way around:

    "I'm currently working on finding the best stack to use to try an idea fast (buy a domain, set a landing page, drive some traffic, see what happens) and in the cheapest way possible. I won't make the same mistake of indefinitely developing an MVP. I should even try to test my idea without a line of code. "

    I'm wondering how do you intend to drive the traffic because you stated that you hate marketing?

    1. 1

      Hi Ante, you're right, I hate marketing. But I will do my best to talk to customers first, try to harvest an existing community maybe.

      I know I'll have to do some marketing, it's mandatory to get the word out there, but I won't build anything before validating my idea. So I may do the marketing before I actually code anything, which is the opposite of what I did with Hercules.

  4. 1

    Excellent article, and beautifully explained "hacks" (I hate this word, but it applies here) to rank better within the Play store. Kudos to you.

  5. 1

    Thanks for sharing this! Regarding monetization, is the $9.99 a one-time fee? Have you tried subscriptions? And how many of the users that install the app end up paying for it?

    1. 1

      Thanks for your comment!

      Yes the $9.99 is a one-time fee. About 3% of the users that install the app buy it.

      I didn't try subscription because I asked to a lot of customer if they would buy it and most of the time a subscription model is big no-go for them. Also my retention rate aren't that great (3 months, the same as in the gym!) so a subscription model may plummet my revenues... because I couldn't sell a $9.99 / mo subscription, I would have to lower the price to maybe $4.99 / mo or even less.

      1. 1

        I'm working on a mobile app as well and these insights are very helpful, thank you. The 3% conversion rate from free to paid is in-line with the industry average.

        For subscriptions I agree, having a monthly or quarterly option doesn't make sense as the revenue would be too low and there are more chances for people to cancel. I was thinking for a yearly subscription, I might try that with my app.

        How is the user data stored in your app? Do you store it locally on the user's device or on a server?

        1. 1

          You're welcome. Yes the conversion rate is reasonable.

          I store the data locally on each user device. I did this due to some legacy code I built in the first place, I would NOT recommend you to do this because today users expect to change and sync their data across all their devices seamlessly.

          You should use some Firebase online data storage kind of service for your app, definitely.

          1. 1

            That's exactly what I'm using for storage, Firebase database :)

            The good thing about how you store data is that you don't need a server or at least it doesn't have a big load. So a one-time payment is ok in this case. Otherwise you would end up with lots of people to support on your server and no revenue from them.

            1. 1

              Nice you already are on firebase!

              Yes the way Hercules works now have pros / cons but I should have used firebase anyway. I thought firebase was totally free but it's not when you hit some high traffic. Well, it's not that expensive anyway when you switch to a paid plan.

      2. 1

        I've done a health app too. I find that retention is terrible. They're willing to pay anything at the start of the year, but mid year, the market is terrible. One time fee is the way to go IMO.

        A lot of them also realize this. People also seem to prefer large, one shot payments because it forces them to commit to their health, rather than some subscription they could cancel when they're feeling lazy.

        1. 1

          Yes that's why all the gyms want you to pay from the beginning of your year for the full year! Retention is terrible because people quit very quickly due to a lack of motivation. That's why I don't want to test a subscription model. I'm quite sure it wouldn't work.

  6. 1

    Awesome history!

    Did you change your opinion on iOS? You seem to collect email addresses on the website for iOS now.

    1. 1

      Thanks Sujan.

      No I didn't change my opinion on iOS, I just forgot to delete this part on the english website as I did on the french one a long time go. I just fixed it.

Create a free account
to read this article.

Already have an account? Sign in.