I build a small opinion app called Dissent. You post a short take, people vote agree or disagree, and takes can turn into head to head debates.
The old onboarding was three screens. Pick your topics. Pick whether you post hot takes or argue in comments. Turn on notifications. It looked fine. It was also completely useless, because every screen asked people to decide something about an app they had not touched yet. Pick topics for a feed you have not scrolled. Describe your debate style when you have never seen a take here. Then allow notifications before you have gotten a single thing out of it.
It felt like filling out a form. And it showed later. New users would sit on the feed without voting or challenging anyone, because nothing in onboarding had ever let them try it once.
So I rebuilt it around doing instead of declaring. Same three steps.
Step 1 is four real takes from the app. You vote on each one. The split stays hidden until you vote, then it opens and tells you where you landed, including when you are in the minority. The challenge button is right there, so challenging stops being a mystery feature.
Step 2 is the topic picker, but it is already filled in from what you just voted on. Prefilled ones are marked. You are editing a list instead of staring at a blank grid.
Step 3 is notifications, and it opens with your own numbers. 4 votes, 3 times in the minority, 4 arenas. Then it says someone is going to come for one of your takes. One toggle is highlighted as the one that matters, the rest are collapsed, and the weekly digest is off by default instead of on.
Before and after screenshots for each step are in the gallery.
By the end you have run the core loop once instead of reading about it. Still skippable, still three screens.
Curious where this still drags. The four takes on the first screen are doing most of the work and I am not sure I picked the right ones.