Journal · Product

Paywalls that respect people.

Subscriptions pay for good software. Here's how to design pricing, trials and paywalls people trust, and why dark patterns cost more than they earn.

Independent software has to be paid for somehow. Advertising pays by selling attention and, usually, data. One-time purchases struggle to fund years of updates. Subscriptions, done honestly, align the business with the user: the product earns its keep by staying worth paying for.

The trouble is that "done honestly" is doing a lot of work in that sentence. Many paywalls are designed to confuse, and people have learned to distrust them all. That distrust is a cost every app pays, including the honest ones.

Show the price before anything else

The total price and the billing period should be the most prominent thing on a paywall, not a gray line under a large "Start free trial" button. If there's a yearly plan, show the yearly price as the yearly price; a per-week breakdown of an annual plan is technically true and designed to mislead.

Apple's App Store guidelines expect subscription terms to be clear before purchase. We treat that as the minimum. If someone has to squint to find what they'll pay, the design has failed, whatever it does to conversion that week.

Make trials real

A trial should let people experience the whole product, long enough to form a real judgment. They should know when it ends and what happens next. We'd rather give a short trial of everything than a long trial of a hobbled version that never shows the product at its best.

Cancelling should be as easy as subscribing. If it isn't, you're keeping customers who want to leave.

Never hold people's work hostage

This is the rule we care about most. When a subscription lapses, what someone already made in the app is still theirs. They should be able to open it, read it, search it and export it. Paid features can stop, but locking people out of their own notes, photos or recordings to force a renewal is coercion, and people remember it.

Keeping work accessible also makes the business healthier. People subscribe more readily when they know leaving won't cost them what they've made.

Offer a way to pay once

Some people simply don't want another subscription. A lifetime option, priced fairly against the subscription, respects that and often brings in customers who would otherwise never pay at all. For products with real running costs, like those calling paid AI models, there are other fair shapes: plans that differ only by usage, or letting people bring their own key.

Ask at the right moment

A paywall that appears before someone has seen anything is asking for trust that hasn't been earned. One that appears at a natural moment, after they've seen what the product does and want more, is a reasonable offer. The same price converts very differently depending on when it's shown.

Write it like a person

Paywall copy should be calm and specific: what you get, what it costs, how to cancel. Countdown timers on evergreen offers, "Are you sure you want to miss out?" buttons and pre-selected upgrades all trade long-term trust for a short-term number. We leave them out.

The test we use

Would we be comfortable if a customer screen-recorded the whole purchase and cancellation flow and posted it publicly? If yes, ship it. If we'd want to explain or apologise for any part of it, that part needs redesigning.

Pricing and paywall design are part of our launch services. Read more in the journal.