242 lines
7.8 KiB
Markdown
242 lines
7.8 KiB
Markdown
---
|
|
name: onboard
|
|
description: Design or improve onboarding flows, empty states, and first-time user experiences. Helps users get started successfully and understand value quickly.
|
|
user-invokable: true
|
|
args:
|
|
- name: target
|
|
description: The feature or area needing onboarding (optional)
|
|
required: false
|
|
---
|
|
|
|
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:
|
|
|
|
1. **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?
|
|
|
|
2. **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?)
|
|
|
|
3. **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**:
|
|
```javascript
|
|
// 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. |