New users dropped directly into the same dashboard as veteran users face a cold-start problem: no context on what the product does, what to click first, or what success looks like. The user-experience taxon flags this as an activation failure — without a welcome screen, guided tour, or first-run flag distinguishing new from returning users, activation rates collapse and most new accounts never return for a second session. The cost of a missed first-run experience compounds: these users churn before they ever experience the product's core value.
Medium because the product works for returning users, but new-user activation — the metric that drives retention — breaks silently.
Gate the dashboard on an onboardingCompleted flag and redirect new users to a dedicated onboarding route. Update src/app/(app)/dashboard/page.tsx to check the flag on the session or user row, then build a 3-5 step checklist at src/app/(app)/onboarding/page.tsx that guides the user to the core action.
const { data: user } = await getUser();
if (!user.onboardingCompleted) {
redirect('/onboarding');
}
ID: saas-onboarding.first-run.welcome-screen-or-tour
Severity: medium
What to look for: Enumerate all first-run detection mechanisms: checks for isNewUser, onboarding_completed, first_login, or similar flags in session/database. Count the total. Check for dedicated welcome routes, onboarding step components, product tours (Shepherd.js, Intro.js, driver.js, custom spotlight components), or modal overlays triggered for new users.
Pass criteria: First-time users see a distinct welcome experience — either a dedicated welcome screen, an onboarding checklist, a product tour, or a modal that orients them. At least 1 first-run detection mechanism must be present that distinguishes new from returning users.
Fail criteria: No first-run detection logic exists. New users and returning users land on the identical screen with no differentiation. There is no welcome screen, tour, checklist, or onboarding modal in the codebase.
Skip (N/A) when: The project is a CLI tool, API-only backend, or developer library with no user-facing UI.
Detail on fail: "No first-run detection found. New users land directly on the dashboard identical to returning users. No welcome screen, onboarding tour, or setup checklist exists in the codebase."
Remediation: Add first-run detection in src/app/(app)/dashboard/page.tsx:
const { data: user } = await getUser();
if (!user.onboardingCompleted) {
redirect('/onboarding');
}
Create an onboarding checklist at src/app/(app)/onboarding/page.tsx with 3-5 key setup steps.