How I Built & Launched an App in 2 Weeks to 40,000 Users with Ionic
Two weeks ago, I decided to make a companion app for the popular game, Pokemon GO. While my days were spent working on new products at Ionic (like Identity Vault), my early mornings, nights, and weekends were spent hacking on GO Ranger.
Here’s what happened:
- Day 1: I was live on Firebase Hosting as a web app with a few rudimentary features.
- Day 3: The amazing co-founder of Ionic and designer, Ben, made me a logo and I ordered some custom T-Shirts.
- Day 9: I launched several new features throughout the next week of development, testing them with some early users and making tweaks.
- Day 13: I was live on the iOS App Store and Google Play Store.
- Day 14: I posted my app to the most popular Pokemon GO subreddit as well as my local communities.
- Day 16: GO Ranger had been downloaded over 40,000 times in over 110 countries.
- Day 17: The app started trending at #6 on Google Play, is rated 4.9/5 Stars with 50 reviews on iOS, and 4.3/5 Stars with 200+ reviews on Android.
So how did I pull it off? What are some tips to make sure your app launch is successful?
Use a Framework
If you want to launch quickly and iterate your way to success, you should NOT be spending time reinventing the wheel. You should ALWAYS find a framework that helps you get to where you want to be faster, and hopefully one that utilizes technology you already have experience with.
Since I have the most experience with Ionic and web technologies (I do work here after all), I chose Ionic. Not only did I not have to care about how navigation or mobile design paradigms work, but the UI & UX from Ionic provided everything I needed for GO Ranger out of the box.
And hey, GO Ranger got a good amount of comments about it’s buttery-smooth performance!
Focus on Pain
One of the most important aspects of an apps success is to make sure it’s solving pain for your users. In GO Rangers case, some of this pain is quite literal!
Pokemon GO throws events called “Community Days” which are 3 hours long and happen once per month. During the last event, one of my friends told me that the event started at 12pm, which didn’t give me enough time to go home and grab my walking shoes. It turns out the event started at 1pm, but because I showed up early I wound up walking FOURTEEN MILES in…sandals. Ouch. Talk about real pain.
Some might say the opposite would have been worse. If I would have showed up an hour late to the event, I would have missed out on 1/3rd of it!
Clearly there was something here. So the first feature I made was an Event list that shows you both actively ongoing events and upcoming events automatically converted to your timezone with countdown timers.
Just this one feature has resonated greatly with the Pokemon GO community, a lot of Trainers feel this pain!
On top of that, a very popular thing the Pokemon GO community does is make infographics that show current information. For instance, you might have 10 different infographics with different information about how to defeat Mewtwo in a raid.
GO Ranger aims to bring all of the information most commonly found in infographics into an actual dynamic interface that you can click and explore, that is always kept up to date. Now you don’t have to worry about finding the latest infographics and saving them to the photos on your phone!
Launch to a Community
One of the most important factors to whether or not an app is successful is your ability to find an active user base. In my case, Pokemon GO Trainers! If you can go to where your users already are, you’re going to have a much easier time launching.
Here’s how I handled finding other Pokemon GO Trainers that would like to use GO Ranger:
1. Find an active community
Where do your potential users hang out? If you’re a target user, where do YOU hang out? Thankfully for Pokemon GO this is fairly easy, there are several popular Reddit communities that people (including myself) frequent in order to get the latest information about the game and hang out with each other.
In my case r/PokemonGO is the biggest community, with almost 1 Million members, of which over 5000 are normally active at any given point in time.
Just to give you some more ideas, other popular “launch” communities are ProductHunt or Hacker News in the tech community. Also, communities aren’t always websites, sometimes your potential users are at coffee shops or conferences, etc. Go where they are!
2. Be a part of that community
It’s a bad idea to immediately join a community and start peddling your wares. You should be interacting with the community (even if it’s behind the scenes). You’ll be much more successful if you can RELATE to the community as well, if YOU can feel their pain.
Walk fourteen miles in their shoes. Or sandals.
The easiest way to do this is to be building apps that solve your own problems. When you’re part of the target demographic, you can relate to the pain much easier. That’s not to say that you always have to be in your target demographic, it just means you’ll have to do more work in that case.
You also need to make sure that you’re following the communities rules. While r/PokemonGO is open to people posting apps like GO Ranger, the other popular one r/TheSilphRoad, is not.
3. Iterate with the community
You might think you have a great app idea, but you need to make sure that it resonates with your target demographic as fast as possible. Before I even had anything to show for my work, I posted a topic in the community asking people “What do you look up frequently?”
I was trying to get a handle on the information that people wanted easily accessible at their fingertips that would work great for GO Ranger to include.
Once I launched the web version on Firebase, I shared it with a few members of the community before the official launch to make sure that I hit-the-mark on solving their pains.
The big day is here! You’ve iterated with users and you’re ready to hit the big red launch button. Make sure you’re authentic in your launch post, that you’re following all the rules, and that you’re hitting your biggest pain points first.
Here’s my launch post.
5. Don’t stop iterating!
Hopefully you’re going to receive A LOT of responses. It took me multiple days to go through all of the feedback, and I tried to respond directly to as many people as possible. I even organized the feedback into a spreadsheet so I could better account for what was receiving the most upvotes.
Most of the feedback was about things that were inaccurate in my app or bugs. Squash the most important bugs first (GO Ranger had issues on 20% of Android devices, which we fixed within 24 hours), then move on to the most requested features.
One of the bad parts of making a mobile app though is that it’s often VERY hard to change things and ship quickly. In order to make this easier not only for myself, but to deliver better updates faster to my users, I used Ionic Deploy to automatically update my app whenever I push new versions. Deploy V5 includes some very nice new features like differential updates that make sure your updates are downloaded quickly to your users.
The work doesn’t stop here
Yes, launches are quite often one of the most exciting experiences you’ll encounter. I love watching Google Analytics to see how many people are live looking at my app right now (at one point there were 390 simultaneous users).
However, the real work comes from continuing to solve pain, from continuing to put in the work. Yes, GO Ranger got over 40,000 uniques in just a few days, but it’s settled down to about 9000 Daily-Active-Users.
And those ones that stick around? Those are the ones that I want to continue to help.
It’s a two way street. Together we’ll be making Pokemon GO Trainers from all around the world have a better experience with the game.
Long story short: Keep solving more pain, better!