This aims to be an indie dev's definitive guide to building and launching your app, including pre-la...
The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
This guide is aimed at indie developers who are building and launching their mobile apps largely by themselves. The guide will walk through planning, pre-launch, marketing, product development, QA, and launch.
The goal is to combine the concrete product development schedule with an equally concrete marketing schedule so that nothing is missed.
The outline below will combine marketing and product deadlines into a single timeline, so that you can plan for both the marketing and product cycle in tandem.
My name is Adam Wulf, and I've developed mobile apps in an enterprise company, for a number of clients at a small design agency, and currently as an indie developer. I have recently launched Loose Leaf and am launching Remotely very soon, and I launched Here File File long ago.
This guide is a collection of lessons learned.
This guide goes through all of the necessary steps for validating, building, marketing, and launching your product, specifically focused on app dev. In particular, this guide covers:
I missed some stuff! I'm only one guy with my own limited experience. If you see that I've missed some info or have helpful resources to share, submit an issue or PR, or just get in touch.
I'm providing this guide for free and releasing it into the public domain.
Take a few evenings and read through these two books. They're incredibly helpful in explaining the incentives of press/web/buzz/etc, and they also give concrete advice and ideas for marketing your app. Out of all the references I list below, these two have influenced me the most and continue to affect how I weigh nearly every other decision and resource. Read these.
Throughout this guide, I'll reference a number of great resources, some free and some cheap. Here are all the resources in one place:
Every good app starts with a good idea, and we all have too many ideas already. This first step will help us filter these into a short list that might work.
These ideas will change throughout the process, and that's ok. The only important thing is that you have a general direction you're headed. Nothing is proven; nothing is set in stone; this idea is just pointing you in a direction: any direction.
Each app idea should have a one sentence "This is the problem I solve." If you can't distill the problem into one sentence, then either (a) it's not really a problem, or (b) you don't actually understand the problem your idea solves. Clarify the problems, or axe it in our first filter below.
For Loose Leaf, my problem was "All the existing apps are digital notebooks for ideas you keep, I need digital scratch paper for super fast and rough brainstorming."
Filter #1: Remove any app ideas with poorly defined problems
"Everyone" is not a target market. Get as specific as you can here. Each app can have multiple audiences, that's ok, but you need to make sure you have a primary and specific audience.
For Loose Leaf, my market started as "1st level product and design managers".
This doesn't need to be super specific yet, but you need to have a general idea of who'll use your app. Older folks? Younger? Teens? Family? Single? Professional? Occupation?
Look for similar apps that are already in the store. Don't lie to yourself that my-idea-is-a-special-snowflake; people are already (a) solving your problem with some other app or (b) don't actually have the problem you think they do.
Find out how much (a) or (b) already exist, and how.
That wasn't so bad! At this point, you should have a list of ideas where you've (a) defined the problem (b) defined the audience and (c) defined your solution compared to existing solutions.
Next up we'll work on validating your ideas with your target audience. Will it float?! Let's find out!
Most startups fail because they can't find customers, not because they don't have a product. You need to start finding your customers right now, before you've even built anything, and verify to yourself and to them that your idea from Step 1 is actually something they'd pay for and use.
For each idea that's made it through Step 1 filters, you'll want to follow this process until you find one that sticks.
I skipped this step when I was developing Loose Leaf, and I paid the price for it. It took me nearly 4 months post-launch until I had validated a proper target marketing for Loose Leaf, and that was after 2 years of development! It turns out product/design managers don't care about Loose Leaf like I’d thought, but teachers and students love the app. What a wasted opportunity — I'm still playing catch up!
This is something that we were sure to get right with Remotely — pre-launch we already have near 5000 email subscriptions and engaged Twitter followers eager for the launch.
After launch, Loose Leaf was suggested between teachers multiple times. A few times even during a Twitter Chat which helped get more visibility into that community.
I cannot stress this enough, talk to your customers as soon as you possibly can, even before you start building!
To help organize your potential audience, I suggest keeping a spreadsheet in Google. For each of my target audiences, I keep a list of influential Twitter users in that audience. I wrote some simple scripts to scrape profile information, so that I could easily sort by follower count, or search based on keywords in their profile. Then, for each market, I set up a Twitter list with a short list of influential people in each group.
You can learn so much just by listening to the conversations in each group. Twitter is ripe for complaining, so it's a great way to listen in and hear if they're ever actually complaining about the problem you're aiming to solve in the first place.
It's also a great way to jump into related conversations when it's appropriate. If you genuinely have something to add, or can answer a question they post, it's a great way to connect and get to know your audience better.
Now that you've started listening to and getting connected to your audience, you should have enough information to make a rough pass at a minimum viable product. Ask yourself, "How little can I build and still provide value to this customer?"
A few questions to help you get started:
At this point, you should know:
If one of those isn't true for you, look back at the previous sections and clarify until you're ready.
Now you know who your customers are, where they are, and what you want to sell them. Build a landing page that describes exactly those things, and start collecting email addresses. If you can't get their email, you definitely can't get their money.
Services such as Launchrock exist to help you stand up a free website fairly quickly.
This website will do a few things for you:
I use Mad Mimi to manage my email list, but there are lots of options out there for free and for cheap.
You should aim for 5% to 10% of incoming traffic to convert into an email address.
One simple way to test conversions:
You should aim for roughly 5% to 10% of those people following your account back, and roughly 20% of those that click through should be converting on your site into email addresses. If that's not the case, then you've missed your audience, missed your product, missed your pitch of the product, or all three.
No one will bother following an inactive account, so post relevant content to that account consistently — at least once a day. A free Buffer account can make that super easy to manage.
Now that you have a landing page for your app, you're ready to start sending traffic to it to build email signups.
The most valuable advice I received from Traction: brainstorm ideas to market my app in every channel I could imagine. The book walks through 19 different marketing channels, everything from content marketing, to paid ads, to an outside sales team.
As you read through Traction, set up a simple spreadsheet and collect all of your marketing ideas for each channel.
For each idea, track:
After going through this process myself, I came away with nearly 50 ideas that might generate traffic for Loose Leaf, and the vast majority of those ideas were free!
Remember: there is no such thing as a bad idea! Collect all of your ideas; don't let any slip away!
To get you started, here's just a few of the ideas I came up with for Loose Leaf:
Now that you've got your list, sort it by how likely it is to work and how expensive it would be to implement.
Now you've got your prioritized list of marketing ideas, it's time to start executing.
From now until launch you'll want to slowly work through this list. Your goal should be to execute at least one new idea per week.
Keep in mind that some ideas will take longer to execute than others. Running an ad for instance only takes a bit of time to write the ad and push it live — it's 100% passive after that. Some ideas will take weeks before you'll know if they pay off.
As an example: I started livestreaming iOS development in January, but it wasn't until late February that it started to pay off with any traffic — and suddenly in April with multiple news articles. I had the least confidence in this idea, and so far it's generated more traffic than nearly anything else I've tried. This just reiterates that you should record all of your ideas, and slowly iterate through each of them — don't leave any page unturned.
We're on step 4 and we still barely built anything! I know your inner engineer is cringing, but believe me this is good news. It means you haven't wasted any of your development time on an idea that would otherwise fail out of the gate.
Today is the inflection point, we're nearly to the building phase, just a little further to go.
This is your first best guess about how you'll make money. It's likely this will change in the future, and that's ok. Your community building so far should have informed you that (a) they want your product, and (b) how/if they're willing to pay for it.
Common models for apps, pick one:
I can't count the number of times I hear founders talk about the myriad ways they'll make money. "We'll have ads! And paid upgrades! And sell t-shirts! and of course subscription revenue from our pro users!" This is your first clue that you don't understand your audience. Go back to the start of Step 2 and get more feedback from your potential customers. You can expand to more revenue streams after success, but for launch you need to pick one.
You should have one revenue model, and be working to validate that one model starting right now. If that model doesn't end up working out, you'll find out soon and can iterate to a new model — that's fine. It's better to pick one and prove it wrong then move to a second model. Trying too many models at once confuses your users, confuses your development schedule, and confuses your success metrics.
Every time someone downloads your app, how much money do you make? The estimate for this number will be different for each app, category, and revenue model.
Here are a few numbers to help you estimate what your $/download might look like:
Of course these are super rough numbers, and might be dramatically different depending on your audience and model, but they should give you a good rough start.
To give you an idea how different conversion rates can be depending on product and audience, check out the post at Sensor Tower that compares average revenue per user by App Store category.
Remember how I didn't properly validate my target market early on with Loose Leaf? That mistake compounded here.
Since I was aiming at a professional manager target audience, I launched with a up-front-paid-for app. "Professional managers won't have a problem paying a tiny amount for a professional app they'll use for work." That might've been true if I'd gotten traction from that audience, but teachers and students gave me much larger traction, and they don't have the expendable income that professional managers do.
I had the wrong audience in mind, so I chose the wrong revenue model. Oops! Four months after launch I was finally able to pivot into a free app with IAP to better target these education users. It was a costly mistake, and set me back dramatically.
At this point, you have:
You have all of the information necessary to decide "will it work?". Success is different for different people. Maybe you just want some hobby money. Maybe you just want it to break even, put it on your resume, and trade up in job. Maybe you want to become a full-time indie app developer, and this is your ticket. For all of these, you need to think through:
Your goal here is to figure out how many users you need to get to know if your app will be successful. This gives you a concrete goal to aim towards with your marketing. It'll take you out of "lots of users! viral! hockey stick!" and focus you towards concrete user goals.
Don't spend more than a few days building out a prototype. You only want to build enough to validate that you've got the right audience-product match.
By this point, you (a) have an audience and (b) have a proof of concept. If people aren't lining up, then you're doing something wrong. Either your marketing is off, audience is off, or product is off.
Iterate on the idea and marketing to prove that (a) your product is on the right track and (b) you can connect with your audience before committing serious development time in the next step.
Throw away your prototype. Don't use that as a foundation going forward. Actually throw it away, do not re-use any of its code. For most engineers this is obvious, but it can be easy to think "oh look it's nearly done!" or "This can help jumpstart serious dev!" These are both lies, and you'll end up paying for it at the end of your development cycle if you continue with prototype code.
Plan out roughly how long you have to build the app. However much time you give yourself, that's how long it'll take. Make sure to budget 30% of your timeline for QA.
Also remember the engineering maxim: "The first 90% of the product took the first 90% of our time, and the last 10% of the product took the last 90% of the time!" When in doubt, double your engineering estimate for any given task.
Purposefully decide on priority of:
You cannot have all three of these — you must prioritize your timeline, quality, or feature list at the sacrifice of the others.
Every product and development decision you make should be weighed against this priority list.
Just because you're building something doesn't mean you can forget about building your audience. Remember to stay on top of Twitter/FB/etc. and stay connected to your customers.
The goal here is to start getting 3rd party people talking about you, even if just to say that you exist. Inbound links to your site from credible 3rd parties helps increase rankings in Google, and also helps validate you to press as you start pitching later.
You've already started this process in Step 3, and now it's really time to double down. You should've gone through a fair number of ideas from your original brainstorm, here's a few more to keep you going:
At this point, you're very close to launch. The app is "ready" but not ready. The most important thing to do now is make sure that new users are effective when they start up your app for the first time.
Beta will help you catch user confusion and awkward onboarding flows that you weren't able to catch in the prototype / survey phase. Your goal here isn't building new features, it's making sure new users understand your current features and can be effective.
I didn't do nearly enough beta testing before launching Loose Leaf. While I did add in lots of behavior tracking, I didn't have enough data pre-launch to see problems with my first-time user flow.
It turns out that the new user tutorial content I had in the app was severely lacking for some features, and that translated to a pretty severe drop-off rate for new users. I've had to spend time post-launch rebuilding new tutorial content to explain some features.
At this point, you have:
** This section has more info coming, it's incomplete **
Nearly there! Now submit to the store!
By now you've probably already learned: nobody cares about new apps or new features. People only care about how you solve their problems. You should have a two sentence pitch for your app describing the problem you solve, why you're the one that solves it, and how someone can get your app.
This is the message you want to send out to your target audience at launch. As you ask for reviews from sites, it's this story that you can pitch to them. "This is why your readers, podcast listeners, etc., will care about this."
Remember from Trust Me I'm Lying that bloggers and press don't care about sending you traffic, they care about you sending them traffic! If your story resonates with their audience, then the review will generate page views on their article, and only then will they care about it.
Before you reach out to press, understand why their audience will care. And since you've already grown traction with your market with a well-defined problem and solution, this should be an easy pitch!
Over 50% of people find apps to download just by searching the App Store. Not deal sites, not app reviews, not through Google: it's the App Store search. That's why it's incredibly important to spend some time on App Store Optimization (ASO).
Now that your app is done, it's time to submit to the App Store!
Once your app has been reviewed and approved for the App Store, and has its release date set sometime in the future — now it's time to pitch all of the app review sites that you can.
And now the marathon begins!
What if you've already launched your app, or are already neck deep in product development: is it too late to start? Should you just skip the first half of this guide and pick it up somewhere in the middle?
Nope and nope!
It's never too late to start working through this marketing plan and synchronizing it into your development schedule. The most important thing is to start wherever you are now and take concrete steps toward where you want to be: connected to your target audience and building a product they're eager for.
I've confessed many of my mistakes with Loose Leaf, chief among them: I started with the wrong audience, wrong revenue model, and didn't have a marketing plan until post-launch. Oops?
Shortly after launch, I buckled down and started reading, learning, and then implementing a marketing plan for Loose Leaf. That was November. I pushed through the Traction spreadsheet I'd built, following everything I just wrote about in this plan, and it paid off big time in March with nearly 100k downloads in one weekend! And it's continued to work with another near 18k downloads over the following month!
It can be a tough road, and it can sometimes take longer than we'd like, but it works. This is a marathon, not a sprint.
This guide is open for a reason: feel free to fork and contribute your own ideas and edits back for us all to improve from. This guide is a living document: I'll continue to update it with additional info and ideas as I can, and as often as I get suggestions, feedback, and contributions from you!
As indie developers, we don't have funding, a marketing department, or golden handshakes with insiders — anything we can do to help advise each other is invaluable.
Reach out to me on Twitter: @adamwulf
Follow Loose Leaf's story at: http://blog.getlooseleaf.com
And go download Loose Leaf and show your fellow indie developer some love! ;)