The Short Answer

If you sell to anyone who can sign up on their own — solo founders, small teams, freelancers, prosumer users — a public pricing page is almost always a net win. It saves you sales time, pre-qualifies leads, and earns trust by treating buyers like adults. The cases where hiding pricing makes sense are narrow: heavy enterprise deals, deeply custom implementations, or contracts that genuinely depend on procurement. Most indie products fall outside those cases.

That said, “public” doesn’t mean “locked forever.” The real skill is deciding what to expose now, what to leave for a “Contact us” lane, and how to keep the page from drifting into a maintenance burden that quietly breaks trust.

Why Public Pricing Usually Wins for Indies

The strongest argument for showing pricing isn’t philosophical — it’s operational. Every hour you spend explaining pricing on a call is an hour you’re not shipping, supporting, or marketing. Public pricing converts that labor into a page that works while you sleep.

A founder who has bought plenty of SaaS on behalf of larger companies put it bluntly: when pricing is hidden, experienced buyers read it as a signal that the product is enterprise-only, or worse, that the seller isn’t confident in the price. Even enterprise buyers, the argument goes, don’t have blank checks — they build shortlists, compare costs, and quietly drop vendors who refuse to show numbers. Indie founders with limited runway can afford that friction even less than a Series B team can.

There are three concrete payoffs:

  • Self-qualification. Visitors who can’t afford you leave quietly. Visitors who can afford you move forward without needing your calendar.
  • Trust signal. Clear numbers read as confidence. “Contact us for pricing” often reads as the opposite.
  • Sales leverage. A posted price anchors negotiation. Without one, every conversation starts from scratch.

The trade-off is real: you lose some flexibility to quote per deal. For an indie product with low deal volume and high product velocity, that’s usually the right trade.

When Hiding Pricing Is the Right Call

Not every product fits. Keep pricing behind a form if any of these apply:

  • Your price genuinely depends on variables the buyer hasn’t shared — custom data volumes, regulated workloads, on-prem deployment.
  • Average contract value is high enough that a single deal justifies a sales cycle.
  • Your buyer is procurement, not the person who will use the product.
  • You’re running a short pilot and want to filter for seriousness.

Even then, you can compromise: show a starting price or a representative range (“typically $X–$Y per month”), and let bigger deals move to a quote. That keeps the page useful for browsers while preserving room for negotiation.

What to Actually Put on the Page

A good public pricing page for an indie SaaS is short, scannable, and honest. Aim for these elements:

  1. Two to four tiers. Three is the sweet spot for most small products. Two limits choice; five creates decision fatigue.
  2. One clear differentiator per tier. Pick an axis — features, usage limits, support level, seats — and let each tier move up that axis. Mixing axes (one tier limited by seats, another by features) makes comparison painful.
  3. A real price, not “starts at.” If you must bracket, give a range and the conditions that move it.
  4. What’s included at every tier. People compare horizontally. Make sure the left column shows the baseline.
  5. A visible “most popular” cue. Pick the tier you actually want people to buy and mark it. Self-selection improves conversion.
  6. Plain-English answers to the top three objections. Annual discount? Refunds? What happens when you exceed a limit? Inline FAQ beats a separate page.
  7. A soft escape hatch. A “Need more? Talk to us” link for the genuinely large cases — without making it the default path.

Avoid the temptation to build a configurator with sliders and toggles. For a small product, configurators add engineering cost, create support questions, and rarely beat a simple three-column layout.

How to Structure Tiers Without Overcommitting

Tier design is where most indie pricing pages quietly leak revenue or create support headaches. The general guidance from pricing strategists: choose tiers based on how your customers experience value, not on how you prefer to bill them.

A workable approach:

  • Free or trial tier. Useful for acquisition, but define the limits in advance. Unlimited free with vague upgrade prompts tends to produce users who never upgrade.
  • Entry paid tier. Priced for a single user or small team. Keep it cheap enough that the decision feels small, but feature-complete enough that a serious buyer doesn’t feel punished.
  • Mid tier — your “most popular.” This is the one you actually want most customers on. Anchor the page around it. Features here should cover roughly 80% of use cases.
  • Top tier. Either a higher usage cap, a meaningful support or collaboration feature, or both. Resist the urge to gate basic functionality behind it; buyers notice and resent it.

A practical rule: if you can’t describe each tier in one sentence a non-technical buyer would understand, the structure is too clever. Rename, simplify, or merge.

Keeping Pricing Current Without Becoming a Sales Negotiation

The maintenance problem is underrated. Prices drift, features move between tiers, competitors change — and a stale page quietly destroys trust. A few habits help:

  • Tie pricing changes to releases, not quarters. When you ship a meaningful feature, decide which tier it belongs to and update the page the same day. This keeps the page in sync with the product.
  • Version your pricing in writing. A short internal doc — what each tier includes, the rationale for the price, the last change date — turns “what should we charge?” from a debate into a lookup.
  • Keep an annual review on the calendar. Once a year, look at conversion data, support tickets about pricing, and competitor pages. Adjust at most one or two things at a time so you can read the effect.
  • Separate “list price” from “deal price.” List price lives on the page and rarely moves without announcement. Deal price is what you offer in unusual cases — annual prepay discounts, pilots, migrations from a competitor. Documenting the rules prevents every discount request from becoming a fresh argument.

The goal is to make pricing decisions boring and reversible. A page that changes every week looks unstable; a page that never changes looks stale.

A Simple Starter Framework

If you’re launching your pricing page this week, a workable default:

  • Three tiers, named plainly (Free, Pro, Team — or whatever fits your market).
  • One axis of difference: usage or seats.
  • Annual billing shown next to monthly, with the savings spelled out.
  • A short FAQ under the tiers covering refunds, overages, and cancellation.
  • One sentence per tier that names who it’s for.

Ship it. Then watch what people actually click. Pricing is something you iterate on with real traffic, not something you perfect in private.

FAQ

Should I show pricing if my product is expensive?

Yes, if your buyers are the ones paying. If a buyer can’t afford the number, they’ll self-select out — which is faster for everyone. If the number is high but the value is clear, hiding it doesn’t reduce the sticker shock; it just adds friction.

How often should I update my pricing page?

Update it whenever the underlying product changes in a way that affects what a buyer gets. A quarterly review is a sensible minimum; same-day updates tied to releases are better.

What if I’m not sure what to charge?

Pick a number you can defend, ship it, and plan to revise within six months. A live, slightly imperfect price teaches you more than another month of deliberation.

Is “Contact us” ever acceptable on a public pricing page?

Yes — as an escape hatch for genuinely custom cases. It should sit next to clear prices, not in place of them.

Sources