Skip to content

Add onboarding flows for new users#512

Merged
InfinityBowman merged 2 commits into
mainfrom
feat/onboarding-flows
May 1, 2026
Merged

Add onboarding flows for new users#512
InfinityBowman merged 2 commits into
mainfrom
feat/onboarding-flows

Conversation

@InfinityBowman
Copy link
Copy Markdown
Owner

@InfinityBowman InfinityBowman commented May 1, 2026

Summary

  • Add dismissible welcome card with quick-start buttons (AMSTAR 2, ROBINS-I, RoB 2) for first-time logged-in users, replacing the generic greeting until dismissed
  • Fix ContactPrompt dead end: changed from "Early Access Testing" pointing to /contact to "Ready to Collaborate?" pointing to /pricing with trial messaging
  • Differentiate landing page hero CTAs: "Start an Appraisal" is now primary (filled), "Start a Review Project" is secondary (outline)
  • Update pricing page subtitle to clarify individual appraisals are always free
  • Improve local appraisals empty state to mention all three tools and PDF annotation
  • Default sign-in page to "Email Link" tab for new users, matching the passwordless signup flow

Test plan

  • Log in as a new user (or clear corates-welcome-dismissed from localStorage) and verify the welcome card appears with 3 quick-start buttons
  • Click each quick-start button and verify it navigates to /checklist with the correct type pre-selected
  • Dismiss the welcome card and verify it stays dismissed on reload
  • Verify the standard "Welcome back" header appears after dismissal
  • Check the ContactPrompt for free users shows "Ready to Collaborate?" with "View Plans" linking to /pricing
  • Visit the landing page and verify "Start an Appraisal" is filled blue and "Start a Review Project" is outline blue
  • Visit /pricing and verify the subtitle mentions free individual appraisals
  • Check the local appraisals empty state mentions AMSTAR 2, ROBINS-I, RoB 2
  • Visit /signin without a previous login method and verify "Email Link" tab is selected by default
  • Visit /signin after a password login and verify "Password" tab is selected by default

Closes #511

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Dashboard now displays a personalized welcome card for first-time users
    • Sign-in page remembers your previous login method
  • Style

    • Hero section button styling and mobile spacing refined
  • Content Updates

    • Plan and collaboration prompts updated with trial and pricing information
    • Appraisal tools descriptions enhanced with supported tool names

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This pull request implements an onboarding experience for new users by introducing a dismissible welcome card on the dashboard, refactoring the quick actions component to use navigation-based workflows, and updating messaging across the app to emphasize free-tier features and trial options while reducing dead-end copy.

Changes

Cohort / File(s) Summary
Dashboard Onboarding
packages/web/src/components/dashboard/WelcomeCard.tsx, packages/web/src/components/dashboard/Dashboard.tsx, packages/web/src/components/dashboard/QuickActions.tsx
Introduces WelcomeCard component with personalized greeting, animated entrance, and dismissal callback; updates Dashboard to conditionally render welcome card based on localStorage dismissal state; refactors QuickActions from callback-prop-based to navigation-based with URL search parameters for appraisal type selection.
Messaging & Copy Updates
packages/web/src/components/Hero.tsx, packages/web/src/components/dashboard/ContactPrompt.tsx, packages/web/src/components/dashboard/LocalAppraisalsSection.tsx, packages/web/src/routes/pricing.tsx
Updates hero CTA styling (reduced gap, converted /signup button to outlined variant); replaces "Early Access Testing" messaging in ContactPrompt with trial promotion and /pricing link; enhances LocalAppraisalsSection empty state with supported tools list; updates pricing page copy to highlight unlimited free appraisals.
Route Enhancements
packages/web/src/routes/_app/checklist.index.tsx, packages/web/src/routes/_auth/signin.tsx
Adds search parameter validation to checklist route (strict type string validation); updates signin page to derive initial tab state from persisted login method via getLastLoginMethod().

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Dashboard
    participant localStorage
    participant WelcomeCard
    participant QuickActions

    User->>Dashboard: Load dashboard (first-time user)
    Dashboard->>localStorage: Read dismissal status (guarded try/catch)
    alt Dismissal not found/not dismissed
        Dashboard->>WelcomeCard: Render with user & onDismiss callback
        WelcomeCard->>WelcomeCard: Animate entrance
        WelcomeCard->>QuickActions: Render action buttons
        User->>QuickActions: Click action (e.g., AMSTAR 2)
        QuickActions->>User: Navigate to /checklist with type param
        User->>WelcomeCard: Click dismiss button
        WelcomeCard->>Dashboard: Trigger onDismiss()
        Dashboard->>localStorage: Persist dismissal flag (guarded try/catch)
        Dashboard->>Dashboard: Update showWelcomeCard state
    else Dismissal found and dismissed
        Dashboard->>Dashboard: Skip WelcomeCard, render DashboardHeader
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add onboarding flows for new users' directly and specifically describes the main objective of the changeset, clearly summarizing the primary purpose across all modified files.
Linked Issues check ✅ Passed All coding-related objectives from issue #511 are met: welcome card with quick actions added [WelcomeCard.tsx], ContactPrompt fixed with /pricing link [ContactPrompt.tsx], hero CTAs differentiated [Hero.tsx], pricing page clarified [pricing.tsx], local appraisals empty state enhanced [LocalAppraisalsSection.tsx], sign-in tab default fixed [signin.tsx], and QuickActions refactored to support navigation.
Out of Scope Changes check ✅ Passed All changes are tightly scoped to issue #511 objectives: dashboard onboarding (WelcomeCard, Dashboard dismissal logic), landing page CTAs, pricing messaging, empty states, sign-in defaults, and quick actions. No extraneous changes detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/onboarding-flows

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

@InfinityBowman InfinityBowman merged commit 1aad152 into main May 1, 2026
1 check was pending
@InfinityBowman InfinityBowman deleted the feat/onboarding-flows branch May 1, 2026 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add onboarding flows for new users

2 participants