···4444- [x] Onboarding flow with persona selection (Learner/Creator/Curator)
4545- [x] Empty states with helpful prompts for new users
4646- [x] Help center/FAQ section (with beta development notice)
4747-- [ ] Tutorial/walkthrough for first deck creation
4747+- [x] Tutorial/walkthrough for first deck creation
48484949**SEO & Meta:**
5050
+4-4
web/src/App.tsx
···11import { AppLayout } from "$components/layout/AppLayout";
22import { OnboardingDialog } from "$components/OnboardingDialog";
33import type { Persona } from "$lib/model";
44-import { authStore, preferencesStore } from "$lib/store";
44+import { authStore, prefStore } from "$lib/store";
55import About from "$pages/About";
66import DeckNew from "$pages/DeckNew";
77import DeckView from "$pages/DeckView";
···26262727 onMount(async () => {
2828 if (authStore.isAuthenticated()) {
2929- await preferencesStore.fetchPreferences();
2929+ await prefStore.fetchPrefs();
3030 }
3131 });
32323333 createEffect(() => {
3434- if (preferencesStore.needsOnboarding()) {
3434+ if (prefStore.needsOnboarding()) {
3535 setShowOnboarding(true);
3636 }
3737 });
38383939 const handleOnboardingComplete = (_persona: Persona) => {
4040 setShowOnboarding(false);
4141- preferencesStore.fetchPreferences();
4141+ prefStore.fetchPrefs();
4242 };
43434444 return (
···44import { Tag } from "$components/ui/Tag";
55import { api } from "$lib/api";
66import type { Deck, Persona } from "$lib/model";
77-import { preferencesStore } from "$lib/store";
77+import { prefStore } from "$lib/store";
88import { Button } from "$ui/Button";
99import { A } from "@solidjs/router";
1010import type { Component, JSX } from "solid-js";
···145145 });
146146147147 const currentTip = createMemo(() => {
148148- const persona = preferencesStore.persona();
148148+ const persona = prefStore.persona();
149149 return persona ? personaTips[persona] : defaultTip;
150150 });
151151