We build apps at Appther, and our sleep and anxiety app DeepRest had a stubborn onboarding problem. Users installed, opened it once, and a big chunk never reached the core experience. We rewrote the flow three times before it clicked. Sharing what actually moved the needle, in case it saves someone else the loops.
What did not work first:
We front-loaded everything. Account creation, notification permission, and a long value-pitch carousel all before the user touched anything real. Every gate was a place to quit, and people quit.
What finally worked:
We let people reach value before asking for anything. No sign-in wall on launch. They could try a core session first, then create an account only when they wanted to save progress. Drop-off fell sharply at that one change alone.
We primed permissions instead of demanding them. Before the system notification prompt, we showed a plain screen explaining why reminders help sleep consistency. The soft ask before the hard ask lifted our opt-in rate a lot.
We cut steps and measured each screen separately. Instead of a funnel-wide number, we tracked drop-off per screen. That exposed exactly which two screens were bleeding users, which we would never have seen from the overall rate.
We deferred everything non-essential. Profile setup, preferences, and personalisation moved to after first value, not before it.
The lesson for us was simple. Onboarding is not where you explain your app. It is where you get the user to one real win as fast as possible, then earn the right to ask for more.
Happy to go deeper on the SwiftUI side of any of this if useful.
appther.com/contact-us
0
0
21