feat: Add first-time user onboarding with spotlight tours for app and workflow builder#313
feat: Add first-time user onboarding with spotlight tours for app and workflow builder#313krishna9358 wants to merge 10 commits intomainfrom
Conversation
…ided walkthrough Implement a comprehensive onboarding experience for first-time users featuring: - Spotlight-based guided tour that highlights actual UI elements in the sidebar - 6-step walkthrough covering Workflow Builder, Templates, Schedules, Action Center, and Manage section - Smooth spotlight transitions and pulsing rings for visual emphasis - Tooltip cards positioned next to highlighted elements - Sidebar forced open during onboarding for visibility - Automatic Manage section expansion on the final step - Keyboard navigation (arrow keys and Escape support) - First-time detection via localStorage persistence - Auth-gated (only shows for authenticated users) - Zero new dependencies (uses existing Dialog, Button, Lucide icons, Tailwind) Architecture: - useOnboardingStore (Zustand): Manages onboarding state with localStorage persistence - OnboardingDialog component: Spotlight tour with createPortal rendering for proper z-index - AppLayout integration: Data attributes on sidebar items, sidebar forcing, settings auto-expand Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Extends the onboarding system with a dedicated Workflow Builder tour that walks first-time users through the builder interface: component library, canvas, design/execute modes, save, run, and more options. Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
- Reduce step transition delay from 350ms to 120ms for snappier feel - Remove !isNewWorkflow gate so builder tour shows on first visit - Upgrade both tours with gradient headers, backdrop blur, rounded-2xl cards, slide-in animations, close button, and refined progress dots - Reduce spotlight transition from 500ms to 300ms with ease-out Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
Extend the Workflow Builder tour with 3 new steps: - Execution Inspector panel (run selector, timeline, stop/rerun) - Inspector tabs (Events, Logs, Agent, Artifacts, I/O, Network) - Schedules summary bar (create, manage, view scheduled runs) Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
Bun 1.3.10 introduced a breaking change with NestJS decorators where descriptor.value becomes undefined, causing 6 backend test failures. Pin to 1.3.9 (last known working version) until the regression is fixed. Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
… from tours - Auto-switch to Execute mode when tour reaches Execution Inspector and Inspector Tabs steps, eliminating manual mode switching - Auto-restore Design mode when navigating back or completing the tour - Add Publish as Template step spotlighting the dropdown trigger - Remove progress dots and step counter from both tour dialogs for cleaner UX that doesn't encourage users to skip ahead - Reorder builder tour: design-mode steps first, execution steps last to minimize mode switches - Add left-side tooltip positioning for inspector panel steps Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
Move Publish as Template and View Analytics into the More Options dropdown. Remove duplicate Welcome step from builder tour. Fix execution tab tooltip positioning when it would go off-screen left. Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
- Reorder More Options dropdown: Undo/Redo, Import/Export, then Publish as Template and View Analytics at the bottom - Add Skip tour button to both platform and builder tours - Fix spotlight positioning with requestAnimationFrame continuous tracking instead of fragile one-shot setTimeout - Clamp spotlight to viewport edges for edge-hugging panels - Expand inspector spotlight to cover parent pl-2 gap - Use responsive tooltip width cascade (380/320/fit) for side panels Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
Add user_preferences table and API to store onboarding completion flags server-side. Frontend uses TanStack Query with optimistic updates for instant UI response. Includes one-time localStorage→DB migration for existing users. Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
Default to false (show dialog) when the query has successfully loaded but data is missing, instead of silently defaulting to true (hide). Only hide during the loading state to prevent flash. Signed-off-by: Krishna Mohan <krishanmohank974@gmail.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
2 similar comments
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Summary
Adds a complete first-time user onboarding system with two spotlight-based guided tours and server-side state persistence.
Tour 1: App Navigation Tour
Tour 2: Workflow Builder Tour
requestAnimationFramecontinuous tracking for accurate spotlight positioning during layout transitionsState Persistence (Database-backed)
user_preferencestable with Drizzle ORM schema — composite PK(userId, organizationId), storeshas_completed_onboardingandhas_completed_builder_tourbooleansGET /api/v1/users/me/preferencesandPATCH /api/v1/users/me/preferenceswith NestJS module (controller, service, repository)drizzle-kit pushUI/UX
box-shadow: 0 0 0 9999pxtechnique with animated pulse borderOther Changes
Files Added
backend/src/database/schema/user-preferences.ts— Drizzle table schemabackend/src/user-preferences/— NestJS module (controller, service, repository, dto, module)frontend/src/components/onboarding/OnboardingDialog.tsx— App navigation tour dialogfrontend/src/components/onboarding/WorkflowBuilderTour.tsx— Workflow builder tourfrontend/src/hooks/queries/useUserPreferencesQueries.ts— TanStack Query hooksfrontend/src/store/onboardingStore.ts— Session-only step tracking (Zustand, no persist)Files Modified
frontend/src/components/layout/AppLayout.tsx— Tour 1 integration, DB-backed state, localStorage migrationfrontend/src/features/workflow-builder/WorkflowBuilder.tsx— Tour 2 integration, DB-backed statefrontend/src/components/layout/TopBar.tsx— Dropdown reorder, data-onboarding attributesfrontend/src/services/api.ts— User preferences API endpointsfrontend/src/lib/queryKeys.ts— User preferences query keybackend/src/app.module.ts— Register UserPreferencesModulebackend/src/database/schema/index.ts— Export user-preferences schemaTest Plan
user_preferencestable in DB showshas_completed_onboarding = true