KasyKasy

Onboarding

The default flow, the Skip button, and how to customize screens.

Onboarding is first install only on the native flow (iOS, Android, or device preview on those tabs). Users with an established session do not return to /onboarding in the normal path.

Redirect rules, admin preview, and browser testing: Web guide → /onboarding route.

Implementation

Via MCP: ask your assistant "add onboarding to my project". It runs add_feature for you. See Kasy MCP.

Customizing text and images

Edit copy and images in lib/features/onboarding/. Internal routes live in onboarding_page.dart.

Disabling the Skip button

On the first screen, Skip goes straight to Home (no paywall). The pattern used by apps like Duolingo and Calm.

To disable it, remove onSkip in onboarding_page.dart:

OnboardingFeatureOne(
  nextRoute: 'feature_2',
  // no onSkip = no Skip button
)

Reordering or removing a screen

Onboarding is a chain of screens linked by nextRoute: each screen receives the name of the next one, inside onboarding_page.dart. There's no central list to reorder, you change what each screen points to.

Example: your app doesn't need to ask the user's age. Find the gender_question screen and change its nextRoute from 'age_question' to 'notifications'. The age step is simply skipped (no need to delete its case, just stop pointing to it):

'gender_question' => OnboardingRouteTransition(
    builder: (context) => const UserGenderOnboardingQuestion(
      nextRoute: 'notifications', // skipped 'age_question'
    ),
    settings: settings,
),

Ready-made prompt to hand to your AI:

Read lib/features/onboarding/ui/onboarding_page.dart.
I want to remove the "age_question" step from onboarding, keeping the rest
of the flow intact. Adjust the nextRoute of whoever points to it.

To check the result without going through the whole app again, use preview mode: Admin Console → Tools → Test onboarding. It runs the full flow with no real side effects (no analytics, no real permission prompts) and returns to Admin at the end.

Information

Default flow

feature_1 → feature_2 → feature_3
  → gender → age → push → ATT (iOS)
  → loader → paywall → Home

Last updated on 08/02/2026