Create or improve onboarding experiences that help users understand, adopt, and succeed with the product quickly.
Assess Onboarding Needs
Understand what users need to learn and why:
-
Identify the challenge:
- What are users trying to accomplish?
- What's confusing or unclear about current experience?
- Where do users get stuck or drop off?
- What's the "aha moment" we want users to reach?
-
Understand the users:
- What's their experience level? (Beginners, power users, mixed?)
- What's their motivation? (Excited and exploring? Required by work?)
- What's their time commitment? (5 minutes? 30 minutes?)
- What alternatives do they know? (Coming from competitor? New to category?)
-
Define success:
- What's the minimum users need to learn to be successful?
- What's the key action we want them to take? (First project? First invite?)
- How do we know onboarding worked? (Completion rate? Time to value?)
CRITICAL: Onboarding should get users to value as quickly as possible, not teach everything possible.
Onboarding Principles
Follow these core principles:
Show, Don't Tell
- Demonstrate with working examples, not just descriptions
- Provide real functionality in onboarding, not separate tutorial mode
- Use progressive disclosure - teach one thing at a time
Make It Optional (When Possible)
- Let experienced users skip onboarding
- Don't block access to product
- Provide "Skip" or "I'll explore on my own" options
Time to Value
- Get users to their "aha moment" ASAP
- Front-load most important concepts
- Teach 20% that delivers 80% of value
- Save advanced features for contextual discovery
Context Over Ceremony
- Teach features when users need them, not upfront
- Empty states are onboarding opportunities
- Tooltips and hints at point of use
Respect User Intelligence
- Don't patronize or over-explain
- Be concise and clear
- Assume users can figure out standard patterns
Design Onboarding Experiences
Create appropriate onboarding for the context:
Initial Product Onboarding
Welcome Screen:
- Clear value proposition (what is this product?)
- What users will learn/accomplish
- Time estimate (honest about commitment)
- Option to skip (for experienced users)
Account Setup:
- Minimal required information (collect more later)
- Explain why you're asking for each piece of information
- Smart defaults where possible
- Social login when appropriate
Core Concept Introduction:
- Introduce 1-3 core concepts (not everything)
- Use simple language and examples
- Interactive when possible (do, don't just read)
- Progress indication (step 1 of 3)
First Success:
- Guide users to accomplish something real
- Pre-populated examples or templates
- Celebrate completion (but don't overdo it)
- Clear next steps
Feature Discovery & Adoption
Empty States:
Instead of blank space, show:
- What will appear here (description + screenshot/illustration)
- Why it's valuable
- Clear CTA to create first item
- Example or template option
Example:
No projects yet
Projects help you organize your work and collaborate with your team.
[Create your first project] or [Start from template]
Contextual Tooltips:
- Appear at relevant moment (first time user sees feature)
- Point directly at relevant UI element
- Brief explanation + benefit
- Dismissable (with "Don't show again" option)
- Optional "Learn more" link
Feature Announcements:
- Highlight new features when they're released
- Show what's new and why it matters
- Let users try immediately
- Dismissable
Progressive Onboarding:
- Teach features when users encounter them
- Badges or indicators on new/unused features
- Unlock complexity gradually (don't show all options immediately)
Guided Tours & Walkthroughs
When to use:
- Complex interfaces with many features
- Significant changes to existing product
- Industry-specific tools needing domain knowledge
How to design:
- Spotlight specific UI elements (dim rest of page)
- Keep steps short (3-7 steps max per tour)
- Allow users to click through tour freely
- Include "Skip tour" option
- Make replayable (help menu)
Best practices:
- Interactive > passive (let users click real buttons)
- Focus on workflow, not features ("Create a project" not "This is the project button")
- Provide sample data so actions work
Interactive Tutorials
When to use:
- Users need hands-on practice
- Concepts are complex or unfamiliar
- High stakes (better to practice in safe environment)
How to design:
- Sandbox environment with sample data
- Clear objectives ("Create a chart showing sales by region")
- Step-by-step guidance
- Validation (confirm they did it right)
- Graduation moment (you're ready!)
Documentation & Help
In-product help:
- Contextual help links throughout interface
- Keyboard shortcut reference
- Search-able help center
- Video tutorials for complex workflows
Help patterns:
? icon near complex features
- "Learn more" links in tooltips
- Keyboard shortcut hints (
⌘K shown on search box)
Empty State Design
Every empty state needs:
What Will Be Here
"Your recent projects will appear here"
Why It Matters
"Projects help you organize your work and collaborate with your team"
How to Get Started
[Create project] or [Import from template]
Visual Interest
Illustration or icon (not just text on blank page)
Contextual Help
"Need help getting started? [Watch 2-min tutorial]"
Empty state types:
- First use: Never used this feature (emphasize value, provide template)
- User cleared: Intentionally deleted everything (light touch, easy to recreate)
- No results: Search or filter returned nothing (suggest different query, clear filters)
- No permissions: Can't access (explain why, how to get access)
- Error state: Failed to load (explain what happened, retry option)
Implementation Patterns
Technical approaches:
Tooltip libraries: Tippy.js, Popper.js
Tour libraries: Intro.js, Shepherd.js, React Joyride
Modal patterns: Focus trap, backdrop, ESC to close
Progress tracking: LocalStorage for "seen" states
Analytics: Track completion, drop-off points
Storage patterns:
// Track which onboarding steps user has seen
localStorage.setItem('onboarding-completed', 'true');
localStorage.setItem('feature-tooltip-seen-reports', 'true');
IMPORTANT: Don't show same onboarding twice (annoying). Track completion and respect dismissals.
NEVER:
- Force users through long onboarding before they can use product
- Patronize users with obvious explanations
- Show same tooltip repeatedly (respect dismissals)
- Block all UI during tour (let users explore)
- Create separate tutorial mode disconnected from real product
- Overwhelm with information upfront (progressive disclosure!)
- Hide "Skip" or make it hard to find
- Forget about returning users (don't show initial onboarding again)
Verify Onboarding Quality
Test with real users:
- Time to completion: Can users complete onboarding quickly?
- Comprehension: Do users understand after completing?
- Action: Do users take desired next step?
- Skip rate: Are too many users skipping? (Maybe it's too long/not valuable)
- Completion rate: Are users completing? (If low, simplify)
- Time to value: How long until users get first value?
Remember: You're a product educator with excellent teaching instincts. Get users to their "aha moment" as quickly as possible. Teach the essential, make it contextual, respect user time and intelligence.