Onboarding · Updated 2026-06-29

New user experience (NUX)

In-app onboarding for Organic LLM — overlay-based coachmarks, help dialog, first-session drawer, and welcome explore paths. Layout is never modified for guides; overlays, modals, drawers, and toasts sit on top of the permanent UI.

Surfaces

SurfaceWhat new users see
Signed-out welcomeExplore-first links (/showcase, /blog, /good-news)
Signed-in homeUnchanged layout; first-session pill opens a bottom drawer
Control cluster? → Help & shortcuts dialog (modal)
Sidebar railTooltips + experience-rail spotlight (desktop popover / mobile sheet)
Main chatToast on empty thread + composer spotlight hints
Noesis / Arcadia / Rabbit HolesFeature-specific spotlight or toast hints

Full guides:

Overlay stack

LayerComponentBehavior
Global hintsFeatureHintLayerOne hint at a time; spotlight + popover, mobile sheet, or Sonner toast
First sessionFirstSessionSheetFloating “First steps” pill + intro toast + checklist drawer
HelpOrganicHelpDialogModal from control cluster

All mounted once via OnboardingHost in app/layout.tsx.

Developer entry points

ConcernPath
Hint registrylib/onboarding/feature-hints.ts
Hint prioritylib/onboarding/feature-hint-priority.ts
Onboarding hostcomponents/onboarding/onboarding-host.tsx
Keyboard shortcutslib/onboarding/keyboard-shortcuts.ts
First session statelib/onboarding/first-session-storage.ts
Help dialogcomponents/onboarding/organic-help-dialog.tsx
Teststests/unit/feature-hint-storage.test.ts, tests/unit/feature-hint-priority.test.ts, tests/unit/first-session-storage.test.ts, tests/unit/keyboard-shortcuts.test.ts

Reset for QA

localStorage.removeItem("organic-llm-feature-hints-dismissed");
localStorage.removeItem("organic-llm-first-session-checklist");