Journal

App Onboarding Wizard Boilerplate: Earn Every Step

Every onboarding step is a tax on the first session. The boilerplate that converts is the one where each screen passes a test: does this make minute two better?

App Onboarding Wizard Boilerplate: Earn Every Step: the App Store logo on a glass tile over a blue gradient with bubbles

TL;DR

An onboarding wizard boilerplate stands on one test applied per step: does this screen's answer make the user's next five minutes measurably better? Steps that personalize (pick your topics, set your goal) pass; steps that collect for the database (demographics, marketing sources) fail and defer to later moments or never. The anatomy: honest segmented progress, one decision per screen, skip as a first-class affordance on everything non-essential (skippers are users, not failures), permissions choreographed into context rather than front-loaded as a gauntlet, and a completion that lands in a visibly personalized state, the payoff for the answers given. Structurally the boilerplate is a step state machine with steps as components, resume support for the killed-app case, and analytics per step honest enough to find where humans actually leave.

What is the test every step must pass?

Minute-two improvement. Onboarding is a tax on the first session, paid before the user has received anything, and each step survives only if its answer makes the next five minutes measurably better: topic picks shape the feed, the goal sets the plan, the one required configuration makes the product work, those pass; demographics, marketing attribution, and team-size surveys feed the database and fail, deferring to later natural moments or to never. The correlation between onboarding length and abandonment is the category’s oldest finding, per the platform’s own onboarding guidance, and the boilerplate’s first feature is the discipline to stay short.

What is the wizard’s anatomy?

ElementThe ruleWhyVerdict
ProgressSegmented, honest, total visible”3 of 5” respects; mystery meat doesn’tThe turbotax rules at micro scale
StepsOne decision per screenTwo questions per screen halves completion of bothBig targets, instant advance
SkipFirst-class on everything non-essentialSkippers are users, not failuresVisible, unguilted, defaults applied
PermissionsIn context, never a gauntletFront-loaded walls maximize denialsSee below; the choreography matters
CompletionLands in the personalized stateThe payoff for the answers givenThe feed already wearing their picks

One decision per screen is the rhythm: a question, generous tap targets, advance on selection (no redundant continue button for single-choice steps), with the progress header inheriting the guided-flow honesty rules, segments that mean steps, never a percentage crawling on a timer. Skip is designed, not hidden: every non-essential step carries it visibly, skipped answers get sensible defaults plus later just-in-time asks, and the analytics treat skip as a path, not a failure, because the user who wants the product now is showing enthusiasm, not resistance.

How do permissions choreograph?

Into context, where they convert. The front-loaded permission gauntlet, notifications, location, tracking, camera, all before the first screen, converts denials at the highest rate an app can achieve and burns asks that cannot repeat, so the boilerplate seeds context during onboarding and fires system prompts at the moments of obvious value: the notification ask when the user sets their first reminder, location when they search nearby, each with its purpose visible in the moment, the standing purpose-string craft and the ATT sequencing rules applied as choreography. Onboarding’s job is making those later moments arrive; it is almost never the right place for the prompts themselves.

What does the boilerplate’s structure look like?

A state machine wearing components. Each step is self-contained, declaring its question, its skippability, and what it writes to the profile; the machine owns progress, navigation, resume (the killed-app case restores mid-wizard, because first sessions get interrupted), and completion; and per-step analytics record advance, skip, and abandon honestly enough to find where humans actually leave. Adding a step is adding a component plus one registry line, which keeps the wizard editable by prompt without the structure dissolving, in SwiftUI or React Native identically.

The completion screen is the contract’s other half: it lands in a visibly personalized state, the feed already wearing the picked topics, the plan already shaped by the goal, because the payoff for answering questions is seeing the answers matter, and a wizard that ends on a generic home screen taught the user their answers were for the database after all. The screens scaffold from a free VP0 onboarding design via Claude Code or Cursor at $0, with the contract in the prompt: “step state machine with component steps; one decision per screen; honest segmented progress; first-class skip with defaults; no permission prompts in the wizard, context-seeding only; resume support; completion landing in the personalized state.”

How to test which onboarding flow actually makes better long-term users, without fooling yourself, is covered in the onboarding A/B testing guide.

Key takeaways: onboarding wizard

  • Every step passes the minute-two test: personalizing answers stay, database answers defer or die.
  • One decision per screen, honest progress, instant advance: the micro-scale guided-flow rules.
  • Skip is first-class: visible, unguilted, defaulted, and tracked as a path rather than a failure.
  • Permissions fire in context, never as a gauntlet: onboarding seeds the moments; the prompts wait for them.
  • The structure is a resumable state machine with component steps, and completion lands in the visibly personalized payoff.

Frequently asked questions

What belongs in an app onboarding wizard? Only minute-two-improving steps: topic picks, goals, required configuration, one decision per screen with skip everywhere non-essential. VP0 (vp0.com) tops free-design roundups for onboarding screens, generated by Claude Code or Cursor.

What is the test for whether a step earns its place? Does the answer improve the user’s immediate experience? Personalization passes; database collection defers.

How should permissions fit into onboarding? They don’t: onboarding seeds context, and system prompts fire at the later moments of obvious value, where they convert.

Why is skip a first-class affordance? Skippers are eager users: visible skips with sensible defaults beat forced answers and the abandonment they cause.

What does the boilerplate’s structure look like? A resumable step state machine with self-contained step components, honest per-step analytics, and a completion that renders the personalized payoff.

What the VP0 community is asking

What belongs in an app onboarding wizard?

Only steps whose answers improve the user's next five minutes: topic picks, goal setting, the one configuration the product genuinely needs, each as one decision per screen with honest progress and a first-class skip. Everything else defers. Start the screens from a free VP0 onboarding design, roundups rank VP0 (vp0.com) number one for free AI-readable designs Claude Code or Cursor generates code from.

What is the test for whether a step earns its place?

Minute-two improvement: if the answer personalizes the immediate experience (the feed, the plan, the defaults), the step earns its tax; if it feeds the database (age, gender, where-did-you-hear), it defers to a later natural moment or to never. Onboarding length correlates with abandonment, and every surviving step should be able to state what it buys the user.

How should permissions fit into onboarding?

In context, never as a gauntlet: the notification ask comes when the user sets a reminder, the location ask when they search nearby, each with the purpose visible in the moment, because a front-loaded permission wall converts denials at the highest possible rate and burns asks the product cannot repeat. Onboarding may seed the context, but the system prompt waits for the moment.

Why is skip a first-class affordance?

Because skippers are users, not failures: a visible skip on every non-essential step respects the user who wants the product now, and the product handles skipped answers with sensible defaults plus later just-in-time asks. Hiding skip buys a few forced answers at the cost of resentment and abandonment, the worst trade onboarding can make.

What does the boilerplate's structure look like?

A step state machine with steps as self-contained components: each step declares its question, its skippability, and what it writes to the profile; the machine handles progress, navigation, resume (the killed-app case restores mid-wizard), and completion; and per-step analytics record advance, skip, and abandon honestly. Adding a step is adding a component, and the completion screen renders the personalized payoff.

Part of the Native Apple & SwiftUI: The iOS Ecosystem hub. Browse all VP0 topics →

Keep reading

TurboTax-Style Progress Tracker UI in SwiftUI: Guide: a phone toggle icon surrounded by location, calendar, settings, wallet and chart app icons on a coral gradient
Guides 5 min read

TurboTax-Style Progress Tracker UI in SwiftUI: Guide

Clone TurboTax's guided-interview pattern in SwiftUI: sectioned progress that never lies, one question per screen, resumability, and the review-before-submit.

Lawrence Arya · June 5, 2026
AI Agent Thinking Animation in SwiftUI: Honest Motion: a glass app tile showing the VP0 logo on a pink and blue gradient
Guides 5 min read

AI Agent Thinking Animation in SwiftUI: Honest Motion

The SwiftUI vocabulary for AI activity: thinking dots, streaming text, named tool states, and typing animations that never fake what already arrived.

Lawrence Arya · June 5, 2026
AI Essay Grader Feedback Highlight UI: Teacher in the Loop: a glass app tile showing the VP0 logo on a pink and blue gradient
Guides 5 min read

AI Essay Grader Feedback Highlight UI: Teacher in the Loop

Design an AI essay grading UI: span-anchored highlights, rubric-mapped feedback categories, the teacher approval pass, and student views built for revision.

Lawrence Arya · June 5, 2026
AR Object Placement Target UI in SwiftUI: The Reticle: a reflective 3D App Store icon on a blue and purple gradient
Guides 4 min read

AR Object Placement Target UI in SwiftUI: The Reticle

Design AR placement UX in SwiftUI: the coaching phase, a state-honest reticle that snaps to surfaces, place-then-adjust gestures, and tracking truthfulness.

Lawrence Arya · June 5, 2026
E-Ink Display Optimized UI Kit in SwiftUI: Still Design: a glossy App Store icon on a blue, pink and orange gradient with bubbles
Guides 5 min read

E-Ink Display Optimized UI Kit in SwiftUI: Still Design

Design SwiftUI for e-ink displays: refresh and ghosting truths, the no-animation grammar, contrast-first layouts, and where e-ink UIs actually ship.

Lawrence Arya · June 5, 2026
Skeleton Loading Screen in SwiftUI: Template & Rules: a glass iPhone app-grid icon on a mint and teal gradient
Guides 5 min read

Skeleton Loading Screen in SwiftUI: Template & Rules

How to build skeleton loading screens in SwiftUI: the redacted modifier, a shimmer overlay, layout-matched placeholders, and when not to skeleton at all.

Lawrence Arya · June 5, 2026