We need an onboarding #31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Das problem
A nice and warm, welcoming onboarding would add a nice touch to the app's identity and would also give us a window to ask for the users' preferences (e.g. school of thought). We could use it to give users a nicer and more personal experience. Everything will stay simple and offline, of course.
Notes
Mascot vectorization
Technically, i can use generative AI to just generate the alternative poses. But
The onboarding
We need to specifically decide on:
@claude brainstorm the design parts. be direct, clear and concise
Onboarding — design brainstorm
Grounded in what's already in the repo:
AppSettings(src/core/store/appStore.ts) is a flat object persisted as one MMKV blob viastorageService.ts, and Settings is a declarative list (settingsData.ts) already rendering toggles/modals/nav items. Onboarding should plug into these, not invent a parallel system.1. What to actually ask (keep it to 2 questions, both settings-shaped)
20:00) and its own settings screen; don't duplicate it in onboarding.Rule of thumb: if removing a question wouldn't change any code path, it doesn't belong in onboarding — it belongs in Settings where a curious user can find it later.
2. Flow
3 screens, max:
No progress dots, no account creation, no permissions prompts bundled in (notification permission should be requested contextually when the user enables reminders in Settings, not here).
3. Storage & editability
AppSettings(same object, samesaveData/loadData— no new storage mechanism needed).hasOnboarded: booleantoAppSettings.AppNavigator/root checks this once atinitialize()— same placeisInitializedis already gated — to decide Onboarding stack vs. Tab.Navigator.getSettingsDataidentical in shape to the existingtheme/languageModalSettingsItems. No write-once fields. This also means onboarding is just "Settings with a welcome screen wrapped around it," not a separate data model.4. Fast & skippable
hasOnboarded: truewith defaults — identical end state to answering, just unset preferences. No "resume onboarding" flow needed since everything's editable in Settings anyway.5. Mascot poses
Not a blocker for shipping v1 — ship onboarding with the single existing mascot pose (static, in the Welcome screen) and layer in alternate poses later once vectorized. Don't let asset production gate the flow/data-model work, which is the part with real design decisions.
No files changed — this was a design discussion only, nothing pushed.