As anyone who has published a side project knows, building is the easy part; distribution is where even the best projects fail. I've had many of those failures myself, but I've also had a few minor successes and I think some of the lessons from those are worth sharing.
1: Start with Distribution
It might be too late for this, but whenever possible you should develop a distribution strategy before building anything. If you've already started building, it's worth thinking through this and possibly abandoning the project if you don't have a strong theory on distribution. Don't fall prey to the sunk cost fallacy.
If you're reading this after already publishing an MVP, you might as well see if you can make distribution work, so read on.
2: Reddit and Facebook Groups
My largest increases in traffic have all come from targeted posts in Reddit and Facebook groups.
The trick I've found to success here is to be authentic. I've seen countless people post a generic promotion to any related subreddit, and they usually have little to no engagement.
Try to join groups you want to post in well in advance of actually doing so (another argument for starting with distribution). Look specifically for niche subreddits, it's especially helpful if that niche is something you are actually interested in. Don't promote in groups that don't allow it. However, I have found that reaching out to the mods of such groups asking permission to post is worth the effort. This is easier if you can position yourself as a member of the community excited to share a project you built related to that community.
When you post, try to follow a similar tack. No one wants to see promotions in these groups. But a community member sharing something they built for the community feels different. I've found just being genuine to be the best approach. More "I built this fun thing if anyone wants to try it" and less "This incredible tool will solve all of your problems".
This approach has been incredibly effective for all of my apps. For my current project, Boost Blue, I posted in the main Bluesky subreddit. For a previous project called Mad Maps, I posted in several local off-road Facebook groups, as well as the major Jeep and off-road subreddits.
Essentially every well-thought-out post gave me a major bump in users, which largely persisted. The traffic increase itself though has been a one-time thing. None of those posts had any residual traffic after the first week. So posts to these types of groups are great for a jump start, but they aren't a consistent driver of new traffic.
3: Build in Public
"Building in Public" is probably the most common advice given for promoting projects, but it's too important not to include, so I'll focus on how BiP has worked for me.
BiP posts have been the most successful for me on micro-blogging platforms like X, Bluesky and Mastodon. Of course X is a staple, but I think there is actually more opportunity on the other two. They aren't as big, but that can be an advantage. Additionally the audiences on both are more tech friendly, and full of early adopters. Engagement with posts, and conversion on that engagement have been better for me on both compared to X. In contrast, BiP posts on Reddit have had basically no benefit.
The success of BiP posts is largely dependent on just getting them in front of your audience. X's algorithm is a black box, which is another advantage for Bluesky and Mastodon, which are less algorithm focused. You can generally find relevant terms that are trending, collected by feeds, or followed by users. #buildinpublic on either will get you some traction. From there try including more specific tags, like your framework or language. Also try watching the results for #buildinpublic, and see what other tags are working for audiences similar to yours.
I haven't had much success with technical posts. My largest engagement has come from simply showing new features as I build them. The level of engagement you get on these posts can also help drive the direction of your product; I have been continuously surprised by which features did or did not receive engagement when posted, and that has pretty closely aligned to their reception once released.
Like with posting to Reddit groups, try not to come off as selling a product. Post from the perspective of someone excited to share their progress, not their product.
4: Apple App Store Ads
This is the only paid channel I've included in this list, as I've had very little success with paid advertising on any platform. Between competitive bids on relevant keywords and in-app conversion rates, it always ends up being a negative investment.
The one exception is Search Ads on the App Store. If you're building a mobile app this is the first paid channel you should consider. Users are guaranteed to be on their mobile device. They have a high intent because they are already on the App Store to download an app. You are targeting the more lucrative iOS segment of the market. You don't have to develop creative assets, your App Store listing is all you need, and it gives you more data to test conversion on that listing.
I've focused almost exclusively on Search Results placement. I have run small tests with the other 3 placement options (Today Tab, Search Tab, Product Pages), but none have had close to Search Results' CPA.
I keep campaigns simple — keywords or competitor names I think potential users will be searching for — and most importantly, I set the match to 'exact' not 'broad'. Coming from a programming background, I initially assumed this setting was a fuzzy comparison. It's not. It matches on words with allegedly similar meanings, and at least with my targeted audiences, it doesn't work.
5: App Store Search Optimization (ASO)
Getting ASO right can single-handedly deliver you a consistent source of new users. Indie developers build their entire career around success here, it's arguably more important than programming or product design as a skill. It's also incredibly competitive. This is Yet Another Case for Starting with Distribution. Building a product that will not be able to stand out in search results is an immediate uphill battle. Finding underserved areas with low quality (especially low listing quality) competition in the App Store is a great way to decide what you should be building.
Apple doesn't publish exactly how it ranks apps in search, but the developer community has more or less figured out the broad strokes.
The filter starts with keywords - the keywords in your title and subtitle are weighted more heavily than those in your description and keywords section, so make sure your most relevant keywords are included in those. It's become almost uniform to title apps "name - keyword thing", my off-road app's title was "Mad Maps: Offroad Trails", and Boost Blue is titled "Boost Blue for Bluesky". Other keywords can go in your description and the actual keywords section of your App Store listing.
One piece of advice on the latter - including competitor names in keywords doesn't seem to work. What does work is including keywords that your competitors are ranking on. There are a lot of tools to track keyword placement, I've been using the free version of appfollow.io and have found it really valuable.
After relevancy, the rest of your placement is due almost entirely to download count, reviews, and your listing conversion rate. These are weighted for recency. This is where a short term approach like posting to Reddit and Facebook groups can help you get an initial push to rank higher, which you can hopefully sustain afterwards.
Especially with the rise of AI-enabled development, the biggest opportunities for indie development are in capturing attention. Hopefully these tips give you a useful starting point. There's a lot more depth to each of these topics, so I might do a deeper dive on each in the future. Thanks for reading!