Skip to main content

What I learnt validating my MVP and promoting my app for free

In October 2015 I developed Xtegos - Voices for Whatsapp as a weekend project. Xtegos is a mobile app to read messages with funny foreign accents and share them on Whatsapp as voice messages.

After launching the MVP for Android, I wanted to test the following assumptions:
  • 1) People like sharing voice messages with someone else's voice on Whatsapp groups.
  • 2) People prefer that voice to have a funny foreign accent.
  • 3) This app will grow organically after some initial marketing effort.

In order to achieve some customer base, I implemented the following marketing strategies:
  • A) Create a website, Facebook page and a Twitter account (renamed one with 5k followers).
  • B) Share the app with my personal contacts on social media.
  • C) Share funny voice messages created with Xtegos on my Whatsapp groups.
  • D) Promote Xtegos on Facebook groups with keyword "Whatsapp" with a big lie in the post: "Xtegos, the app to share voices on Whatsapp that is revolutionizing the Internet. Selected as one of the top 10 free apps in 2015".
  • E) Email some app bloggers to review and feature Xtegos.
Strategies A, B and C were quite successful during the first few days, and helped Xtegos get its first 100 users, with many 5-star reviews (most from friends of mine). Some Whatsapp groups I am part of started sharing voice messages and the organic growth worked smoothly. However, after a week or so, the illusion was over. Xtegos was not sticky nor viral.

I went back to the lab, improved the UX, added new voices and launched the iOS and Windows Phone versions with Phonegap (as requested by some users). Then I used strategy D with mixed results: I got a few hundreds of new installations but 70% of them uninstalled the app immediately, and some of them gave Xtegos a bad review. Nobody likes lies, and if you say "Selected as one of the top 10 free apps in 2015" they would expect something ground-breaking, which was not the case.

In view of the results, I decided not to proceed with strategy E. I'll use that silver bullet once I have fixed the problems I have observed. The least thing I want right now is a bad review in a specialized blog.


What I learnt from this experience:
  • Assumption 1: validated.
  • Assumption 2: not validated. Many users chose the voice with their own accent.
  • Assumption 3: not validated. The app is not sticky nor viral.
  • Don't trust feedback from your friends, but their installations and reviews are welcome.
  • Don't lie to your users. "Fake it till you make it" is a dangerous game.
  • Don't waste your time developing the app for other platforms or languages before you have validated your value proposition.
  • Don't do any PR before you have validated your value proposition.
As a consequence, I am going back to the lab and implement a new version with the outcome of this learning experience.

Popular posts from this blog

How to disable cookies on Google Analytics so that you don't need a consent banner

The integration of Google Analytics into a website or blog is not GDPR-compliant by default . You must first obtain explicit consent of the end-users to store cookies, describing in your privacy policy how you intend to use collected personal data. This is the reason why most websites nowadays display an annoying (but necessary) consent banner. If you fail to do so or if you only ask for implicit consent, you are at risk of being fined. However, it is possible to disable cookies on Google Analytics (GA) respecting end-users privacy, so that you don't need to ask for consent. The downside is that you will not be able to distinguish the type of user (unique vs new vs returning) and you will miss some session insights. If these details are not relevant for you, here is how you do it. Disable Google Analytics cookies on a custom website If you have a custom website with full access to the source code, you can simply insert the script below between the <head>  and </head>

How to convert a PWA into an Android app in 5 minutes

In early 2021 I developed a memory game called Kobadoo  as a PWA (Progressive Web App) using ReactJS. It works pretty well as a browser game and gets decent traffic, but I wanted to reach more potential users by making it available on the official mobile app marketplaces. Since I didn't want to spend any time coding a native app, the easiest solution I found was to convert the PWA into a TWA (Trusted Web Activities) app. It barely takes 5 minutes to do it. TWA essentially allows you to easily create an Android app ( .apk file) that displays a full-screen browser view of your PWA. The user experience is almost identical to a web app and the views from the TWA will count as traffic on your web app. This means that if you have ads on your PWA, they will still work (and generate revenue) from the TWA. Another advantage is that every update you make on the PWA will be immediately reflected on the TWA without the need to submit a new version on Google Play. Here's how I convert

How to jump to time offsets in HTML5 video

Let's say that you have a 30-minute WEBM video file, from which you just want to play the following video segments , jumping from one to the other automatically  without interruptions : [00:01:25.00 - 00:02:25.00] -> from second 85 to 145 [00:11:40.00 - 00:11:55.00] -> from second 700 to 715 [00:20:26.00 - 00:21:07.00] -> from second 1226 to 1267 [00:26:11.00 - 00:28:01.00] -> from second 1571 to 1681 To increase the complexity, let's think that you have these video segments in a PHP variable $arrayVideoSegments  (normally the case if they were retrieved from the database).   $arrayVideoSegments[0]->startTime = 85   $arrayVideoSegments[0]->endTime = 145   $arrayVideoSegments[1]->startTime = 700   $arrayVideoSegments[1]->endTime = 715   $arrayVideoSegments[2]->startTime = 1226   $arrayVideoSegments[2]->endTime = 1267   $arrayVideoSegments[3]->startTime = 1571   $arrayVideoSegments[3]->endTime = 1681 The fo