- The most important metric is not the number of downloads. It’s the number of Daily Active Users (DAU) and Monthly Active Users (MAU). You need to build a great, sticky product that people want to use regularly. Most apps fail this test. If you are able to achieve a very high retention rate, you can basically scale ad infinitum (see Facebook, Whatsapp, Instagram etc.).
- Creating an app is much more challenging than creating a web-based product or service. Most people underestimate the work needed to create an app, even a very simple one.
- 10 years ago you basically just needed a web programmer to get started. Today, if you want to build an app, you need an iOS developer, an Android developer, a designer, plus if needed a web programmer taking care of the backend.
- If you are young and are willing to learn and do everything yourself, there are huge opportunities waiting for you. If you need to hire people to do it, it can get fairly expensive, even if you use freelancers around the world.
- An app is not a one-time thing, it is a full-fledged software product. You regularly need to update it because the ecosystem changes so quickly. You also need to fix issues and bugs to keep your users happy.
- User acquisition is a challenge. If you don’t have the budget to pay for app installs (which can cost up to $5 per install), it’s basically a lottery which apps will show up on the result page when searching for a keyword on the App Store.
- You need to encourage word of mouth. Our approach for doing that was the ability to share meditation sessions on Facebook and Twitter.
- ZenFriend was able to get 40.000 downloads in two years. Certainly not bad, but not as much as we hoped for with a global product.
- The easiest way to promote an app is if you already have an existing customer base. At Exsila we are currently developing our app and have a huge advantage because we have more than 100.000 registered users. Starting a marketplace like Exsila from scratch with only an app is much more difficult and more expensive than starting on the web.
- The business model is a challenge as well. Most users expect apps to be free or inexpensive. You need to have a sophisticated business model if you want your project to be self-sufficient. Most apps are in fact losing money. ZenFriend is now generating $300-$500 per month which is nice, but nowhere near being a self-sufficient product.
- Building ZenFriend was a fantastic learning experience. I now have a much better perspective of what it takes to build and market an app. I can now use those learnings at Exsila, and make our app even more successful.
This log is inspired by the fantastic developer log by Amir Rajan, developer of #1 game A Dark Room (buy it to support Amir, but don’t play it, it’s super-addictive, you will thank me ;).
ZenFriend is a meditation app. The same way that Amir inspired us, we wish to inspire others by sharing our experiences with this app project.
Jan 13, 2014: An idea is born
Since May 2013 I’ve been using Runkeeper. I don’t remember the exact date, but after one of my runs in early 2014 I had an idea: I wanted a similar app like Runkeeper for my meditation practice! On January 13, I have created a proto.io account and started working on an interactive prototype. If you’re not familiar with proto.io, it’s the best tool that I have found to build fully interactive app prototypes that you can test on your phone. I absolutely love this tool and recommend it 100% if you want to create a quick app prototype.
Feb 6, 2014: Naming ain’t easy
Picking a name is never easy. For the past weeks I have been looking for the perfect name. My early favourites were ZenMotivator and ZenTracker. Today I have decided to do something that I’ve never done before. I have made a list of my 60 closest friends, family and entrepreneur friends, send them an email and asked them for feedback. Within a few short hours I received a whopping 20 (!) answers. ZenMotivator and ZenTracker didn’t get much love. Instead ZenMate and ZenFriend emerged.
Feb 10, 2014: Recruiting developers
After about 30 hours of work, I had a fully working prototype made out of 72 screens that contained all the details and text. Today we posted the job on Elance, Odesk and Freelancer.com. We used Derek Sivers’ advice and included two filters into the description. (1) “Please sign and upload our NDA (Non Disclosure Agreement) first (see attachment)”. (2) “VERY IMPORTANT: To separate you from the spammers, please write “I AM REAL” as the first line of your bid. We will delete all bids that do not start with this phrase, since most bidders never read the requirements. Thank you for being one who does.” These two filters served us very well, as we were able to immediately rule out lots of bidders that never read the requirements or are too lazy to print out, sign and upload an NDA. The most funny NDA’s came from China. Instead of properly printing and signing, they just pasted their signature as a picture and sent us back the .docx file. Nice try, but no thanks.
Feb 17, 2014: Hand-shake with developer
Out of the more than 100 bids we only chose a handful to evaluate deeper. Our own experience as well as experience from other developers had shown us the challenges with freelancers in the far east (India, China, Vietnam, …). So we made a decision to only consider bidders from Eastern Europe (Ukraine, Romania, Bulgaria, Poland, Czech Republic, Russia, …). We were looking for a small company that also had a designer in-house. We didn’t want a one-man operation, but we also didn’t want to deal with the complexity of a large firm. We wanted a company with 5–15 employees. We sent them our interactive prototype and detailed requirements. We messaged with them on Skype. We asked for designs and references whom we could call. Quickly we had 2–3 finalists: one from Austria, one from Ukraine and one from Russia. It turned out that we liked the Russian company best. It is a small company with about 10 people, and the CEO oversees all projects personally. We liked his responses, and we also had a phone call with two of his clients, as well as himself. There also was a personal component. The CEO had done projects for Swiss clients before and had visited the country several times. One of the reference calls was with one of his Swiss clients. Both references were very happy, said that the company was very hard-working and delivered always on time and on budget. That was all we needed to know. We shook hands with the Russian company.
Feb 28, 2014: Buying domains
In the meantime we have decided to name the app ZenFriend. Both zenfriend.com and zenfriends.com were already registered, but were both for sale by HugeDomains.com. The price was okay, and we really wanted to own those domains, so we bought both of them today. However this step was not necessary. We could have easily started with an available domain like zenfriend.co or similar. The purchase was mainly done to have peace of mind, to stop thinking about those bloody domains :) but also to set up the project properly from the beginning, as changing a domain later is always a hassle. A word of caution: If you are super-short on cash, please don’t spend money buying domains! Pick a variation that is available by adding suffixes like app, hq etc. (e.g. zenfriendapp.com or zenfriendhq.com). On a sidenote, I kinda like the HugeDomains concept. They have over 300.000 very high quality domains that are for sale for very fair prices. I rather pay a few hundred or thousand dollars to such a company than having to hunt down an anonymous domain holder in the Philippines who might have an outrageous asking price, if I’m lucky enough to even find him.
Feb 20, 2014: First mockups
We received the first design mockups.
Mar 4, 2014: First build
We received the first build. The Design has been mostly finalized in the past days.
Mar 15, 2014: Collecting emails with landingpage
Launched a first landingpage on zenfriend.com to collect email addresses from interested people. Installed the SumoMe plugin to maximize signup rates. Started some marketing. Spent $10 on StumbleUpon without a single conversion. Then started a Facebook ads campaign based on Noah Kagan’s Facebook Ads blueprint which converted immediately. I knew that this time I didn’t want to base this project on pure luck. I wanted to build a waiting list of early adopters.
Apr 8, 2014: Having a mailinglist still rocks
We now have over 300 people on our waiting list, and just passed 100 FB Likes as well. Based on the Facebook experience that I have gained over the last couple of years, I would never spend money to buy likes. Buying website clicks was very successful so far, and as a side-effect we could generate “free” Likes for our Page as well. Also please don’t overestimate the effect of a Facebook Page or Twitter Profile. The traffic you can generate is very low. Focus instead on generating email addresses. Emails usually offer a much higher engagement and response than social media postings.
Apr 23, 2014: Truly a global product
We now have over 500 people on our waiting list. Most popular countries: USA, Italy (very surprisingly #2), Portugal (surprisingly #3), Canada, Switzerland, Australia. Most popular cities are Lisbon, Rome, Istanbul and Melbourne. We’re loving it!
May 19, 2014: Version 1.0 is ready for review
We loved the quick development cycle by our developers. On average, we have received two builds per week, and interated quickly. Up until now we have spend around 500 hours designing, developing and testing the app. 27 builds later, Version 1.0 was ready to be uploaded to Apple for review. It was a bit scary, but also exciting. For a total of about $900, we have built a waiting list of about 900 people (and as a side-effect have got 400 FB Likes). We were ready to launch! Originally we wanted to set the price to $1.99 or $2.99. We decided to say thank you to our early adopters and friends and ultimately set a special price of $0.99.
May 21, 2014: In-app-purchase metadata rejected
I don’t like being patient. Waiting in line for the app to be reviewed by Apple was not my favourite part. There was just nothing I could do. Then this morning, Apple wrote us that they rejected our In-app-purchase metadata, and that I should visit the Resolution Center in iTunes Connect. I crafted my response very carefully, and hit send. Fully expecting the possibility to be rejected completely, having to create a new build a go through review again.
May 22, 2014: We are live!
Waking up, I received several push messages from iTunes Connect. Checking my Gmail I couldn’t believe my eyes: The app was ready for sale! I did a quick search on the App Store and here we were, ZenFriend was live. We did it! What a wonderful morning. First thing I did was buying the app. Second thing, I meditated with it for 20 minutes. Third thing, I started my launch process. Sending out newsletters to all my friends and business acquaintances, and to our waiting list. In total I’ve sent the news to about 1300 people. I had no idea what the conversion rate would be, but figured that a conversion rate of about 25% would be satisfactory, so my hope was to get 300 downloads.
May 29, 2014: Results of the first week
– May 22: 131 paid, 2 free
– May 23: 32 paid
– May 24: 29 paid, 3 free
– May 25: 15 paid, 2 free
– May 26: 35 paid, 28 free
– May 27: 19 paid, 7 free
– May 28: 7 paid, 2 free
– May 29: 2 paid, 9 free
Similar to what Amir Rajan experienced, the results were rather disappointing and slow. Given that we had 900 people on our waiting list that explicitly expressed their interest (and that we paid $900 for), the first day was rather disappointing. The following days even more. As I’ve learned from Amir, he was working a lot with promo codes and Reddit giveaways. So on May 26 I did a promo giveaway on Reddit which helped a tiny little bit. It also helped because I received some valuable feedback from it. Unfortunately this aproach is not scalable. I also did some other giveaways, burning quickly through my 100 codes. Only about half were redeemed. On May 28 I’ve raised the price to $1.99 with the intention to test this for 4–7 days. I quickly realized that this was not working. I had to lower the price, and I’ve decided to make the app free for a couple of days.
In the first week we also realized that on some devices there were ugly bugs. The app was crashing and there were some issues with sound quality. We had clearly work to do. We had contact with plenty of users and quickly identified a list of more than 20 improvements and bug fixes that we need to ship soon. The developers started working on Version 1.1.
Here are the numbers of our launch newsletter to our waiting list: 54 percent open rate, 32.5 percent click-rate. From previous newsletters I knew that the more links there are in the newsletter, the more the clicks would spread out. So I included only the download link and nothing else. From those 284 people that clicked I guess that around 50–70 have bought the app. That means that almost 70 percent of the subscribers didn’t even click. I guess that’s just the way the newsletter business works. Therefore the effective Cost per Install was around $15 for our 50–70 early adopters. We also sent a follow-up newsletter to all people that did not open or didn’t click the launch newsletter (that’s a very cool Mailchimp feature: when creating a campaign select Send to new segment > Campaign activity). With that we squeezed out another 47 clicks, but it doesn’t make much difference for above numbers.
Inspired by this post of Noah Kagan I’ve sent a follow-up newsletter to all people that have clicked the link, and sent them a survey, asking why they DIDN’T buy. The most common answer was that people were interested, but they didn’t want to pay for the app or expected the app to be free. One person said that it would have been smarter to make the app free for a limited time at the beginning and with that make a big push. I agree. It was a huge mistake to set the price to $0.99. Free would have been the much better choice. With this information, we decided to do a second launch the next day, and set the app to Free.
May 30, 2014: Big push aka Second Launch
Today was a big day. The first independent review of our app went live, written by Buddhist teacher Bodhipaksa. We also decided to make the app free today, and make a big push. I’ve sent the news to our waiting list, and posted two announcements on Reddit in /r/Meditation and /r/ZenHabits. With the last one we have hit the jackpot. Quickly we rose to the #2 spot and received lots of positive feedback. We love Reddit!
One thing that is frustrating with iTunes Connect is that they update download numbers only once a day. I quickly found out how to bypass this. As we have a server-side, I can simply monitor our user database. At the peak, we were growing with 20–30 users per hour, effectively doubling our user base from 300 to more than 600 in just a few hours. Now we’re talking!
When sending out the newsletter to the waiting list, we decided to play it fair. We included a Money-back Guarantee for users who have already paid for the app (thanks David for the idea). It was not about the money, it was about trust. Those early users have given us their trust and we didn’t want to abuse this trust. So we included a link to a survey where people could ask for a refund and enter their PayPal email address, the other option was they could ask us to give the money to a charity. We immediately received several emails thanking us for this option and telling us that they were happy with paying for the app and didn’t want a refund. Learning: Money-back Guarantees can be a great tool. And the actual refund rate is usually quite low.
Jun 2, 2014: Bad news from Twitter
This is a notice that your application, ZenFriend, is no longer allowed to perform write operations.
Please make sure that your application follows Twitter’s API Terms of Service
To request that your application be re-enabled for write operations, please visit our support form.
Jun 3, 2014: Good news from Twitter
Twitter has automated systems that find and disable abusive API keys in bulk. Unfortunately, it looks like your application got caught up in one of these spam groups by mistake. We have reactivated the API key and we apologize for the inconvenience.
Twitter Platform Operations
Jun 3, 2014: A nice gift
What a nice gift by one user. After answering some of his questions by email, he surprised us by replying that he just became a Gold Supporter ($29.99) and that he just rated our app with 5 Stars. WOW, we are blown away! With that, we climbed to #15 Top Grossing in the Health Category in the Swiss App Store, so I suppose that you need revenues of $60–150 per day to get to Top 10 Top Grossing in this category in Switzerland.
June 4, 2014: Results of the Money-back Guarantee
7 people responded to our Money-back Guarantee offer. One person asked for a refund which we refunded one hour later, three people asked us to donate the money and three people said it’s fine we can keep it. We have made a donation to the Deworm the World Initiative.
June 4, 2014: Results from our Second Launch
The big push was very successful. My guess is that the newsletter and the popular Reddit posting were generating the bulk of the downloads. Here is the break-down:
– May 30: 645
– May 31: 217
– June 1: 178
– June 2: 75
– June 3: 68
As you see we had an additional 1000 downloads in just a few days which is fantastic. What you also see is that the level didn’t sustain. Our Reddit posting continued to be on the first page during this entire period. The ‘new normal’ seemed to be around 60–70 downloads per day.
June 4, 2014: Losing the Ranking, Wrong Timing
I knew already from Amir Rajan that you lose your rankings when you set your app from Paid to Free. The app disappeared into a black hole and it took more than two full days until we started showing up in the Free category, and close to 4 full days until it felt normal again. That means that our push from May 30 was timed wrongly. Next time I would do it like this: First set the app to Free, then wait 3–4 full days until the app ranks, and then start the marketing push. On our big day we had 645 downloads and 450 from the US alone. I don’t know what ranking would have been possible in the Health category with 450 downloads, but certainly better than not appearing at all. We certainly lost some extra downloads. Definitely a valuable lesson. Our launch score is not very good yet: Two attempts, two major mistakes.
June 5, 2014: Social media sharing
Social media sharing is quite disappointing. Only 27 out of 1420 users have given the Twitter permission, that is less than 2 percent. Facebook percentage is better, about 350 or almost 25 percent. Out of 1163 sessions, only 89 have been published to Facebook (7.6 percent) and only 31 to Twitter (2.7 percent) while 12 out of those 31 have been by myself which means that only 1.6 percent of the sessions have been shared by users other than me. Not sure what the percentages for similar running apps like Runkeeper are, but I expected them to be certainly higher. My hope was at least 10 percent. What’s cool is that 60 percent of all users have registered an account. Out of the people who registered, 55 percent have done so manually and 45 percent have chosen Facebook Connect. But still that means that 40 percent of all users have no account, which means that they keep seeing the registration screen every time they open the app and have to tap ‘Remind me later’ to get access to the timer. We have decided to change that in the future: the default screen will be the meditation timer. Therefore we hope to improve the experience of those 40 percent not registered users. It will be interesting to see whether the registration percentage will decrease with this change. In the Apple guidelines, there is a clear suggestion to let the user go straight to the functionality and avoid having to register for as long as possible. We will embrace this suggestion.
June 6, 2014: Doubling Downloads
Just received the App Annie newsletter with yesterday’s stats. For the past days, we’ve had about 75 downloads per day. And yesterday we doubled to 153. Wow, what a nice surprise! After a quick look at App Annie’s Daily Ranks, it looks like we’ve gained popularity in France, Germany, Brazil and Poland. The app business is a rollercoaster. 15 days after launch, our total downloads are now at 1730, resulting in an average of 115 downloads per day. Sounds smooth, but it isn’t, as our lowest number was 9 and two days later we hit our all-time-high of 643 in one day. I guess our median would be around 60–70 per day.
June 10, 2014: First Apple Financial Report for May 2014
– Total Units sold: 311
– Total payout: $246
June 11, 2014: Translation offer
What a nice gesture from one user. He offered us to translate our app voluntarily to his mother-tongue. We are blown away! Unfortunately currently we don’t have any immediate plans to roll out any new languages as we are updating the app very frequently and each language adds complexity, especially if we don’t speak this language ourselves. It’s good to know however to have translation support by our users when needed!
June 14, 2014: 2000 users!
We now have 2000 users that opened the app at least once. We have total downloads of 2310, that means that about 14 percent of the people downloaded but not opened the app so far.
June 16, 2014: Version 1.1 is live!
It took a full 10 days for the new version 1.1 to be reviewed by Apple. We submitted right during WWDC so maybe that was the reason for the long waiting time.
Also this time, I didn’t test the in-app-purchase before releasing the app. This was a mistake as I just discovered: a bug causes the app to crash when a user attempts to buy an upgrade. Not good. Learning: always test everything.
Today we have passed 2500 total downloads, meaning an average of about 100 per day since going live.
June 16, 2014: First Downtime
Apparently the database connection got lost. The issue was caused by a database update that we performed after Version 1.1 went live. Unfortunately there have been some complications so the app lost the connection with the database for about 90 minutes. Just before that I have sent a newsletter to all our users announcing the update. One user thought that the update erased all his stats. Very bad timing. Our devs reacted fast and could fix the issue soon. Such things happen.
June 16, 2014: Cleaning up database
We had some issues with duplicate session entries. So today I manually went through more than 2000 meditation sessions and deleted duplicate entries. I like clean databases and I guess our users like clean stats as well.
June 17, 2014: First Day Results After Update
The app business is a rollercoaster. I was told that updating an app gives a boost, because you are featured in the New section and new apps supposedly are favored by the App Store algorithm. The opposite was the case. Downloads fell to just 39, an almost 50 percent decline compared with the “new normal” of the past two weeks. Is this because the reviews have been reset? Or just a random swing? I have no idea. On the other hand we had 3 people choosing to become upgraded members, which is nice. A whopping 1183 — meaning 47 percent — of all users have updated the app on the first day. The iOS 7 auto update feature rocks. On the other hand, most people don’t notice that an update has been installed. Manual updates were a bad user experience, but at least they ensured more awareness of the update.
June 18, 2014: Reddit promotion
After the disappointing download numbers of yesterday I have decided to do some Reddit promotion. And it worked! Yesterday we had 142 downloads :) Unfortunaltely I cannot do this every day as I don’t want to spam Reddit. But it’s still nice to do it once in a while to get some boost.
June 19, 2014: Another Fan
The effect of great customer support: Just turned a frustrated user that thought about deleting the app into a gold-member ($29.99), friend and fan that referred his friends. Just by solving his problem in a fast, friendly way. All within 2 short days. Love it!
Learning: if a user actually takes the time to contact you, he probably really cares about the product. Take advantage of that chance.
June 19, 2014: Lean Analytics
Google Ventures Lean Analytics Workshop. Very good inputs regarding “What kind of metrics matter?” and Lean Startup Methodology: https://www.youtube.com/watch?v=uIG1H_EQ6WQ
Examples of Baselines to strive for:
– A good growth rate during YC is 5–7% per week, 10% is exceptionally well. At revenue stage, measure growth in revenue, before that in active users (Paul Graham, baseline for YC companies)
– 30% of all Users use site/app each month, 10% per day, 1% concurrently (Fred Wilson)
→ So far we are reaching Fred Wilson’s baseline (more than 10% of all users open the app at least once a day), but not yet Paul Graham’s, as our weekly growth stagnated slightly.
July 2, 2014: Lean Startup Presentation
Today I have held a presentation at an i-net event about my experiences with Lean Startup, Bootstrapping and Growth Hacking. I have used ZenFriend as a case study. Here are the slides http://de.slideshare.net/remouherek/lean-startup-experiences
July 15, 2014: Marketing Strategy
The past weeks have been rather disappointing. Downloads kept going down and started to stabilize at 15–25 per day. Given the 3000 downloads of the first month and our hope to get 100.000 downloads within the first year, the current numbers were brutal. On the one hand: Yes, that’s an organic growth of 600 users per month, which isn’t super bad. On the other hand: Of course we want to see growing, and not declining numbers. I can only speculate about the reasons:
– One obvious reason is that with our update we have lost all our reviews, so when you visit the app on the App Store, instead of saying “Average rating 5 stars” it said “No ratings”.
– Another reason probably is the removal of the annoying but probably effective download link in the messages that people share on FB and Twitter.
– And lastly, that word of mouth obviously isn’t working yet, probably because we only have a very small number of consistent daily users
After a period of low motivation and frustration we have decided to do the following:
1. Contacted some users and asked them to review the app until we had our 5 star rating back
2. Becoming a user in meditation forums and introducing the app or commenting on existing discussions
3. Restarting our FB Install Ads campaign with great success. In the past few days $49 have bought us 83 downloads, therefore a cost per install of $0.59. Yes we’re losing money doing that, but hey it’s almost 100 users for only 50 bucks! Not too shabby at all.
With all that we are back on a 50–60 a day level (30–40 organic). Not yet what we want and need it to be, but certainly better than 20.
July 16, 2014: We love our users
Today we have sent out a newsletter and asked to participate in our user feedback survey. A whopping 13 percent of all people that viewed the email have completed the survey. We love it and will consider every single piece of information that users have given us. Lots of great ideas in there!! While most people finished the survey in 2–4 minutes, some people have taken 15, 20 and even 30 minutes to give us detailed feedback. WOW!
70% of all participants have given us permission to follow up and request clarification by giving us their email. What a fantastic user base and what fantastic potential that this has opened up! 60 percent of all participants have already recommended the app to one or more people, so apparently we were wrong that word-of-mouth isn’t working.
July 17, 2014: Peek free usability testing
We have done some free usability tests. Very cool to observe users interacting with the app. Here are the results:
July 23, 2014: Some random tips
1. Create a closed Facebook group (or similar) with your evangelists/ambassadors/fans/betatesters. It’s very important to have instant access to a network of supporters. Be it if you need some more reviews to make the 5 review limit per country, be it some upvotes or comments for Reddit/Blogposts/HackerNews.
2. Don’t localize too soon. We now have two languages and honestly, I wouldn’t do it again. It just makes things more complicated. Start with English, find a working business model, and then once you reach a certain stage, invest in localization. Doing everything in multiple languages is quite a pain: app description, keywords, screenshots, website, marketing. You just can’t do it all. Focus on one language and maybe even on one country. Don’t spread yourself too thin. Focus to reach critical mass at least in one area.
April 17, 2016: Short update after a long time :)
- Total downloads will soon hit 40.000 for both iOS and Android.
- Android has proven disappointing with less than 5.000 downloads and much less revenue per user than iOS.
- We have shifted the business model away from a yearly upgrade to a slightly more expensive $9.99 lifetime upgrade. This has improved revenue per user substantially, as most users chose the $4.99 upgrade before.
- Our main issue remains the retention rate. We have less than 5.000 monthly active users and less than 1.000 daily active users. These two metrics are the most important. You can have millions of downloads. If your users don’t come back, you have an issue. To be fair, most apps have this problem. So it’s not unique to us. I actually believe that our numbers are above average.
- We keep maintaining the app for now, and plan to do one or two updates per year. We are also thinking about selling the app to someone with fresh energy who would like to tackle and solve those challenges. We have collected lots of data on what worked and what didn’t, which is very valuable. Now this data needs to be put into action. Unfortunately I’m now focused on my CEO role at Exsila so I don’t have the time and energy to reinvent ZenFriend. If this challenge excites you, email us firstname.lastname@example.org. Maybe we can find a way to work together or to take over the project.