Calm, AllTrails, and Duolingo all spend serious time making great paywalls.
Let’s see how they do it.
Why does Duolingo have 4-5 taps and multiple screens to get to a purchase?
You should get people to the purchase page as fast as possible, right?
Duolingo uses progressive disclosure with multiple screens to not overload the user with too much information on the paywall
1st screen sells the value you get and tells you it’s $0.00
2nd screen reinforces the value with free vs paid feature comparison
The CTA button on the second screen also lets you know the trial is 2 weeks for free
3rd reassures you they’ll remind you about the trial so it doesn’t accidentally renew
Finally, on the very last screen you the see the price.
Since you’ve invested time going through the paywall, and you understand each piece of information, you’re more likely to convert.
TL;DR? Scroll to the bottom for nine easy tests to improve your paywalls.
Calm shows the $69.99 annual plan and compares it to the higher priced monthly price
Monthly plans have much higher churn, so price it higher to make the annual look more attractive
If you don’t subscribe during onboarding, you can access the trial on the home screen. Different users want different things, if they don’t convert up front, give them options.
Post-onboarding paywalls are text-heavy. If a user didn’t subscribe during onboarding, they're more skeptical and discerning. Give more information about why they should give you money.
Calm also uses dynamic paywalls when you tap on locked content. They vary the copy based on what you’ve tapped and then pull through the image from the content.
What else do they do?
Big numbers to show value (50,000+ minutes of audio)
They emphasize the immediacy of the benefits (Fall asleep faster, Easy tools for immediate relief, Find your Calm today)
They removed the 40% offer in-app, but they still show it via email. This allows them to circumvent the app store text and it directs you to a Stripe web purchase flow
Backed by science: Calm uses saw a 24% reduction in anxiety
Note: The USD Calm base price is $69.99 now. First, they pushed everyone toward a free trial, then they stopped showing the trial upfront and pushing towards the annual plan, but with a 40% discount ($41.99). Now there’s no discount or trial during onboarding.
AllTrails combines proven concepts to create an effective paywall
Mini trial timeline module (Blinkest paywall) reassures users their trial won’t accidentally convert
Free vs paid comparison chart shows all the value users receive
Compared to Duolingo, AllTrials “progressive disclosure” is by having a long paywall. If someone needs more information, they can keep scrolling and receive it.
Usage stat shows paid users reach their goals better
After onboarding in the app, AllTrails removes the trial and tries to get you to convert directly. If you’ve already seen and explored the app, what’s the point in a trial?
AllTrails uses the same base paywall but changes the hero graphic and title based on where you tapped (similar style to Calm).
TL;DR
9 concepts to test with your paywalls:
Add a free vs paid comparison chart
Add a usage stat on why paid users are X times more likely to reach their goals
Use dynamic/customized imagery in the header to match where users tapped to reach the paywall
Match the copy to where they tapped. Users are telling you what motivates them
If you have a trial, reassure users they’ll be reminded before it expires
Use big numbers to show the value users will receive (50,000+ minutes, 200+ guides)
Compare the monthly price to the annual price to make the annual price look attractive
Use a different paywall after onboarding since these users are more critical and discerning
Use “Limited time offer” to introduce a sense of urgency
Want to see even more paywalls? Check out my research board here. This also has paywalls from Flightly, Impulse, Headway, and Bettersleep.