Pricing is the decision indie developers agonize over least and should agonize over most. It quietly determines who installs your app, how much you earn per user, how your reviews read, and whether you have a business or a hobby. There is no universally correct answer, but there is a right answer for your app, and you can reason your way to it. Here is how to think about the four main models.

Free

A free app with no monetization is not a business model, it is a gift. That is fine if the goal is portfolio, learning, audience, or a funnel to something else. Free maximizes installs because it removes every ounce of friction, which makes it a legitimate strategy when your real goal is reach rather than revenue.

The trap is drifting into free by default because pricing felt scary, then resenting the work when nobody pays. Choose free deliberately, knowing what you are trading away. If you genuinely want income from this app, free with no plan attached is usually the wrong starting point.

The user pays once to download, then owns it forever. This model is honest and simple: no ads, no nagging, no subscription guilt. People who pay up front tend to be higher-quality users who actually wanted the thing, and your reviews often reflect that.

The downside is brutal install friction. A price tag, even a small one, cuts your downloads dramatically compared to free, because most people will not pay for something they have not tried. Paid up front works best when the value is obvious before installing, when you have a clear niche audience who already wants the solution, or when “no ads, no subscription, no tracking” is itself the selling point. For a focused utility with a clear job, a one-time price can be a feature, not a barrier.

Freemium

The app is free to download, with a paid upgrade that unlocks more. This is the dominant model for a reason: it removes install friction like free, while still creating a path to revenue like paid. People try before they buy, which suits anything whose value is hard to convey from a store listing alone.

Freemium lives or dies on where you draw the line. Give away too little and the free tier feels like a crippled demo that generates angry reviews. Give away too much and nobody ever upgrades because they already have everything they need. The art is making the free tier genuinely useful and complete for casual users, while the paid tier solves the problems that only your most engaged users have. A good test: would you be happy if someone used the free version forever and told their friends? If yes, you have probably drawn the line well.

Subscription

The user pays repeatedly, monthly or yearly, for ongoing access. Subscriptions produce the best revenue per user and the most predictable income, which is why so much of the industry has moved to them. For an app with genuine ongoing value, a service that keeps delivering, content that keeps updating, costs that recur, a subscription is fair and sustainable.

But subscriptions carry real obligations and real risk. Users increasingly resent subscription fatigue, and they will punish you in reviews if your app does not clearly justify a recurring charge. The honest question is: does this app deliver continuous value, or is it a one-time tool wearing a subscription costume? A flashlight app should not be a subscription. A service with ongoing server costs or constantly refreshed content reasonably can be. If you cannot articulate why the value recurs, neither can your users, and they will cancel.

On-device apps and the cost question

One factor people forget: your costs shape your honest pricing options. If your app runs on a server, every user costs you money every month, which pushes you toward subscriptions just to stay alive. If your app runs entirely on-device, with no servers to pay for, you have far more freedom. You can give it away, charge once, or offer a small upgrade, without a recurring bill forcing your hand. That freedom is one of the quiet advantages of building on-device, which I wrote about in why I build small apps.

How to actually decide

Work backward from two questions. First, where does the value live: is it obvious before install, revealed during use, or delivered continuously over time? Second, what does each user cost you to serve? Map those answers onto the models:

  • Value obvious before install, low cost to serve: paid up front can work.
  • Value revealed during use: freemium, with a generous free tier.
  • Value delivered continuously, real ongoing costs: subscription, clearly justified.
  • Goal is reach, not revenue, costs are near zero: free, on purpose.

You can change it later

Pricing is not a permanent tattoo. Many successful apps started free to build an audience, then introduced a paid tier once they understood who their users were and what those users valued most. Others launched paid and moved to freemium when they realized the price was the only thing standing between them and a much larger base. You will almost certainly get the first guess somewhat wrong, because you are pricing before you have the data that pricing decisions really need. That is fine and expected. Ship a reasonable model, watch how people actually respond, and adjust with what you learn. The goal is to start with something defensible, not to agonize forever toward a perfect number that does not exist yet.

The honest closing

Whatever you pick, price with respect for the user. The fastest way to tank an app is a pricing model that feels like a trap: a free tier that is secretly useless, a subscription for a one-time tool, an upgrade nag every thirty seconds. Pick the model that matches where your value actually lives, make the deal obvious and fair, and let people feel good about paying you. Good pricing is not extraction. It is an honest exchange where both sides come out ahead, and apps built on that hold up far longer than ones built on dark patterns. When you start charging, revisit getting your first 100 users, because price and acquisition are two halves of the same decision.