Flow
The iOS onboarding flow, drawn as two parallel cohort paths. Hover any step for its source-of-truth identifier, the data it collects, and any flag or condition that controls it.
Hand-maintained. This graph mirrors
Packages/OnboardingFeatureSupport/Sources/OnboardingFeatureSupport/OnboardingFlowState.swift. If you change a branch in Swift, update
src/lib/onboardingFlow.ts too.
Phase 6 (later) replaces this with a generated JSON definition shared by
both sides.
always taken
flag-gated
screen
affirmation
terminal / entry
flag-gated step
About to start
journeyStatus = .aboutToStart · exploring GLP-1
Already on GLP-1
journeyStatus = .alreadyOnGlp1 · on medication
Flags in this graph
-
trackingStyleQuestionPackages/AppLogic/Sources/AppLogic/Services/FeatureFlags.swiftGates the trackingStyle + trackingAffirmation steps for both cohorts.
-
completionScreenForExplorersPackages/AppLogic/Sources/AppLogic/Services/FeatureFlags.swiftGates the .completion trophy for explorers (about_to_start). When off, explorers end on .planPreview and finalize silently.
Sources
-
Flow graph source of truth:
Packages/OnboardingFeatureSupport/Sources/OnboardingFeatureSupport/OnboardingFlowState.swift -
Telemetry events:
Packages/Core/Sources/Core/Services/OnboardingTelemetry.swift -
Feature flags:
Packages/AppLogic/Sources/AppLogic/Services/FeatureFlags.swift
Coming next
- Phase 2 PostHog funnel — per-step conversion, cohort split.
- Phase 3 Choice histograms and save-failure log.
- Phase 4 Experiment variant funnels.
- Phase 5 Feature-flag config mirror.