@ericrisco/rsc 3.3.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/manifest.json +43 -22
- package/package.json +1 -1
- package/scripts/lib/default-skill-floor.js +5 -1
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/retired-skills.js +4 -0
- package/scripts/rsc.js +1 -1
- package/skills/design/SKILL.md +4 -3
- package/skills/design/evals/cases.yaml +2 -2
- package/skills/ftd/SKILL.md +1 -1
- package/skills/react/SKILL.md +2 -1
- package/skills/ux/SKILL.md +149 -0
- package/skills/ux/THIRD_PARTY.md +32 -0
- package/skills/ux/evals/cases.yaml +40 -0
- package/skills/ux/references/flows.md +124 -0
- package/skills/ux/upstream/UPSTREAM.json +59 -0
- package/skills/ux/upstream/ux-designer/GUIDE.md +180 -0
- package/skills/ux/upstream/ux-designer/LICENSE +21 -0
- package/skills/ux/upstream/ux-designer/references/01-core-principles.md +251 -0
- package/skills/ux/upstream/ux-designer/references/02-laws-of-ux.md +330 -0
- package/skills/ux/upstream/ux-designer/references/03-accessibility.md +411 -0
- package/skills/ux/upstream/ux-designer/references/04-visual-design.md +433 -0
- package/skills/ux/upstream/ux-designer/references/05-information-architecture.md +432 -0
- package/skills/ux/upstream/ux-designer/references/06-interaction-design.md +495 -0
- package/skills/ux/upstream/ux-designer/references/07-forms-and-inputs.md +491 -0
- package/skills/ux/upstream/ux-designer/references/08-mobile-ux.md +539 -0
- package/skills/ux/upstream/ux-designer/references/09-ux-writing.md +493 -0
- package/skills/ux/upstream/ux-designer/references/10-user-research.md +533 -0
- package/skills/ux/upstream/ux-designer/references/11-design-systems.md +618 -0
- package/skills/ux/upstream/ux-designer/references/12a-presence-awareness.md +395 -0
- package/skills/ux/upstream/ux-designer/references/12b-conflict-resolution-sync.md +420 -0
- package/skills/ux/upstream/ux-designer/references/13a-canvas-navigation.md +388 -0
- package/skills/ux/upstream/ux-designer/references/13b-canvas-objects-performance.md +559 -0
- package/skills/ux/upstream/ux-designer/references/14-ai-ux-patterns.md +511 -0
- package/skills/ux/upstream/ux-designer/references/15-ethical-design.md +419 -0
- package/skills/ux/upstream/ux-designer/references/16-onboarding.md +430 -0
- package/skills/ux/upstream/ux-designer/references/17-notifications.md +461 -0
- package/skills/ux/upstream/ux-designer/references/18-data-visualization.md +453 -0
- package/skills/ux/upstream/ux-designer/references/19-search-ux.md +479 -0
- package/skills/ux/upstream/ux-designer/references/20-emotional-design.md +382 -0
- package/skills/ux/upstream/ux-designer/references/21-data-tables.md +629 -0
- package/skills/ux/upstream/ux-designer/references/22-performance-ux.md +626 -0
- package/skills/ux/upstream/ux-designer/references/23-internationalization.md +347 -0
- package/skills/ux/upstream/ux-designer/references/24-voice-and-multimodal.md +308 -0
- package/skills/ux/upstream/ux-designer/references/25a-barcode-camera-scanning.md +342 -0
- package/skills/ux/upstream/ux-designer/references/25b-barcode-scanner-workflows.md +412 -0
- package/skills/ux/upstream/ux-designer/references/25c-barcode-display.md +277 -0
- package/skills/ux/upstream/ux-usability-foundations/GUIDE.md +285 -0
- package/skills/ux/upstream/ux-usability-foundations/LICENSE +21 -0
- package/skills/ux/upstream/ux-usability-foundations/references/anti-patterns.md +267 -0
- package/skills/ux/upstream/ux-usability-foundations/references/checklists.md +130 -0
- package/skills/ux/upstream/ux-usability-foundations/references/decision-prompts.md +340 -0
- package/skills/ux/upstream/ux-usability-foundations/references/principle-cards.md +449 -0
- package/skills/worktrees/SKILL.md +19 -5
- package/targets/branch-guard.mjs +59 -4
- package/targets/clone-bootstrap.mjs +1 -1
- package/targets/session-memory-adapter.mjs +2 -2
- package/targets/team-safe-start.mjs +1 -0
- package/targets/worktree-reaper.mjs +14 -1
- package/skills/ui-engineering/SKILL.md +0 -113
- package/skills/ui-engineering/evals/cases.yaml +0 -38
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
# Onboarding & User Activation
|
|
2
|
+
|
|
3
|
+
Onboarding is the critical bridge between sign-up and engaged usage. This reference covers patterns for first-run experiences, progressive disclosure, activation metrics, and re-engagement.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
- Onboarding Patterns
|
|
10
|
+
- Progressive Disclosure
|
|
11
|
+
- User Activation
|
|
12
|
+
- Personalization
|
|
13
|
+
- Sign-Up Flow
|
|
14
|
+
- First-Run Experience
|
|
15
|
+
- Re-Engagement
|
|
16
|
+
- Measuring Success
|
|
17
|
+
- Anti-Patterns
|
|
18
|
+
- Sources
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Onboarding Patterns
|
|
23
|
+
|
|
24
|
+
### Product Tours
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
┌─────────────────────────────────────────┐
|
|
28
|
+
│ ┌──────────────────────────────┐ │
|
|
29
|
+
│ │ Step 2 of 4 │ │
|
|
30
|
+
│ │ ───────────── │ │
|
|
31
|
+
│ │ Create your first project │ │
|
|
32
|
+
│ │ │ │
|
|
33
|
+
│ │ Click the + button to get │ │
|
|
34
|
+
│ │ started with a new project. │ │
|
|
35
|
+
│ │ │ │
|
|
36
|
+
│ │ [Back] [Next] [Skip tour] │ │
|
|
37
|
+
│ └──────────────────────────────┘ │
|
|
38
|
+
│ ▼ │
|
|
39
|
+
│ [ + New Project ] │
|
|
40
|
+
└─────────────────────────────────────────┘
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Best practices:**
|
|
44
|
+
- Keep tours to 3-5 steps maximum
|
|
45
|
+
- Highlight one feature per step with a spotlight/overlay
|
|
46
|
+
- Always allow skipping ("Skip tour" visible on every step)
|
|
47
|
+
- Point to the actual UI element being described
|
|
48
|
+
- Show progress indicator (step N of M)
|
|
49
|
+
- Trigger contextually, not on every login
|
|
50
|
+
|
|
51
|
+
### Tooltip Walkthroughs
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
┌──────────────────────┐
|
|
55
|
+
│ 💡 Quick tip │
|
|
56
|
+
│ Use / to search │
|
|
57
|
+
│ commands quickly. │
|
|
58
|
+
│ │
|
|
59
|
+
│ [Got it] [Show more] │
|
|
60
|
+
└───────┬──────────────┘
|
|
61
|
+
▼
|
|
62
|
+
┌────────────────────────────────────────┐
|
|
63
|
+
│ [Search commands... /] │
|
|
64
|
+
└────────────────────────────────────────┘
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- Appear in context when user first encounters a feature
|
|
68
|
+
- One tooltip at a time (never stack)
|
|
69
|
+
- Dismissible and don't block interaction with the feature
|
|
70
|
+
- "Got it" dismisses permanently; "Show more" opens full docs
|
|
71
|
+
- Respect dismissals (don't re-show on next session)
|
|
72
|
+
|
|
73
|
+
### Onboarding Checklists
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
┌─ Getting Started ───────────────────────┐
|
|
77
|
+
│ │
|
|
78
|
+
│ ✅ Create your account │
|
|
79
|
+
│ ✅ Set up your profile │
|
|
80
|
+
│ 🔲 Invite a team member │
|
|
81
|
+
│ 🔲 Create your first project │
|
|
82
|
+
│ 🔲 Connect an integration │
|
|
83
|
+
│ │
|
|
84
|
+
│ ████████████░░░░░░░░ 60% complete │
|
|
85
|
+
│ │
|
|
86
|
+
│ [Dismiss checklist] │
|
|
87
|
+
└──────────────────────────────────────────┘
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Best practices:**
|
|
91
|
+
- 4-6 items (not overwhelming)
|
|
92
|
+
- Pre-check completed items (account creation counts!)
|
|
93
|
+
- Progress bar/percentage for motivation
|
|
94
|
+
- Link each item directly to the relevant action
|
|
95
|
+
- Dismissible but recoverable from settings
|
|
96
|
+
- Celebrate completion (confetti, congratulations message)
|
|
97
|
+
- Order items by value delivered, not complexity
|
|
98
|
+
|
|
99
|
+
### Empty States as Onboarding
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
┌─────────────────────────────────────────┐
|
|
103
|
+
│ │
|
|
104
|
+
│ 📁 │
|
|
105
|
+
│ No projects yet │
|
|
106
|
+
│ │
|
|
107
|
+
│ Create your first project to start │
|
|
108
|
+
│ collaborating with your team. │
|
|
109
|
+
│ │
|
|
110
|
+
│ [+ Create Project] │
|
|
111
|
+
│ │
|
|
112
|
+
│ Or try a template: │
|
|
113
|
+
│ [Marketing Plan] [Sprint Board] [Wiki] │
|
|
114
|
+
│ │
|
|
115
|
+
└─────────────────────────────────────────┘
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- Show helpful illustration (not just "no data")
|
|
119
|
+
- Clear call-to-action for the logical next step
|
|
120
|
+
- Offer templates or sample data to reduce blank-page anxiety
|
|
121
|
+
- Brief explanation of what this area is for
|
|
122
|
+
- Never show a completely empty screen with no guidance
|
|
123
|
+
|
|
124
|
+
### Sample Data / Sandbox
|
|
125
|
+
|
|
126
|
+
- Pre-populated example data that demonstrates product value
|
|
127
|
+
- Clearly labeled as sample/demo data ("This is example data — delete anytime")
|
|
128
|
+
- Easy one-click removal when user is ready
|
|
129
|
+
- Shows real functionality, not just screenshots
|
|
130
|
+
- Avoids cluttering the user's actual workspace
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Progressive Disclosure
|
|
135
|
+
|
|
136
|
+
### Layered Complexity
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Level 1 — Basic (default view):
|
|
140
|
+
┌────────────────────────────────┐
|
|
141
|
+
│ Name: [ ] │
|
|
142
|
+
│ Email: [ ] │
|
|
143
|
+
│ │
|
|
144
|
+
│ [Save] │
|
|
145
|
+
└────────────────────────────────┘
|
|
146
|
+
|
|
147
|
+
Level 2 — Show more:
|
|
148
|
+
┌────────────────────────────────┐
|
|
149
|
+
│ Name: [ ] │
|
|
150
|
+
│ Email: [ ] │
|
|
151
|
+
│ │
|
|
152
|
+
│ ▾ Advanced settings │
|
|
153
|
+
│ ┌──────────────────────────┐ │
|
|
154
|
+
│ │ Role: [Admin ▾] │ │
|
|
155
|
+
│ │ Team: [Engineering ▾] │ │
|
|
156
|
+
│ │ Timezone: [Auto ▾] │ │
|
|
157
|
+
│ └──────────────────────────┘ │
|
|
158
|
+
│ │
|
|
159
|
+
│ [Save] │
|
|
160
|
+
└────────────────────────────────┘
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Principles:**
|
|
164
|
+
- Show the most common options by default
|
|
165
|
+
- Hide advanced options behind expandable sections
|
|
166
|
+
- Use sensible defaults so advanced options are rarely needed
|
|
167
|
+
- Label advanced sections clearly ("Advanced settings", "More options")
|
|
168
|
+
- Persist user's disclosure preference per section
|
|
169
|
+
|
|
170
|
+
### Feature Revelation Strategies
|
|
171
|
+
|
|
172
|
+
- **Usage-based**: Unlock features as users demonstrate readiness
|
|
173
|
+
- **Time-based**: Introduce features over first week of usage
|
|
174
|
+
- **Role-based**: Show features relevant to user's selected role
|
|
175
|
+
- **Need-based**: Surface features when context suggests need
|
|
176
|
+
- Avoid gating features artificially — if a user seeks them out, show them
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## User Activation
|
|
181
|
+
|
|
182
|
+
### Defining Activation Metrics
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Activation = user reached the "aha moment"
|
|
186
|
+
|
|
187
|
+
Examples:
|
|
188
|
+
- Slack: Sent first message in a channel
|
|
189
|
+
- Dropbox: Uploaded first file
|
|
190
|
+
- GitHub: Made first commit
|
|
191
|
+
- Figma: Created first design frame
|
|
192
|
+
- Notion: Created and shared first page
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Time-to-Value (TTV)
|
|
196
|
+
|
|
197
|
+
The time between sign-up and the user experiencing core product value.
|
|
198
|
+
|
|
199
|
+
**Optimization strategies:**
|
|
200
|
+
- Remove unnecessary sign-up steps (defer profile completion)
|
|
201
|
+
- Auto-configure based on sign-up context (role, company size)
|
|
202
|
+
- Pre-populate with relevant templates or data
|
|
203
|
+
- Guide users to the core action immediately
|
|
204
|
+
- Measure TTV and optimize for reduction
|
|
205
|
+
|
|
206
|
+
### The "Aha Moment"
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
Identify by analyzing:
|
|
210
|
+
1. What do retained users have in common?
|
|
211
|
+
2. What action separates retained from churned users?
|
|
212
|
+
3. How quickly do successful users reach this action?
|
|
213
|
+
|
|
214
|
+
Design toward it:
|
|
215
|
+
- Make the path to the aha moment as short as possible
|
|
216
|
+
- Remove friction between sign-up and first value
|
|
217
|
+
- Celebrate when users reach it
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Personalization
|
|
223
|
+
|
|
224
|
+
### Role-Based Onboarding
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
┌─────────────────────────────────────────┐
|
|
228
|
+
│ Welcome! What's your role? │
|
|
229
|
+
│ │
|
|
230
|
+
│ ┌───────────┐ ┌──────────────┐ │
|
|
231
|
+
│ │ 🎨 │ │ 💻 │ │
|
|
232
|
+
│ │ Designer │ │ Developer │ │
|
|
233
|
+
│ └───────────┘ └──────────────┘ │
|
|
234
|
+
│ ┌───────────┐ ┌──────────────┐ │
|
|
235
|
+
│ │ 📊 │ │ 👤 │ │
|
|
236
|
+
│ │ Manager │ │ Other │ │
|
|
237
|
+
│ └───────────┘ └──────────────┘ │
|
|
238
|
+
│ │
|
|
239
|
+
│ This helps us customize your setup. │
|
|
240
|
+
└─────────────────────────────────────────┘
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
- Ask 1-2 personalization questions max during sign-up
|
|
244
|
+
- Customize dashboard, default views, and feature highlights based on role
|
|
245
|
+
- Allow changing selection later without losing work
|
|
246
|
+
- Make it clear how this choice affects their experience
|
|
247
|
+
- Skip if irrelevant (single-purpose tools don't need role selection)
|
|
248
|
+
|
|
249
|
+
### Skill-Level Adaptation
|
|
250
|
+
|
|
251
|
+
- Detect usage patterns to infer expertise level
|
|
252
|
+
- Offer "beginner" vs. "experienced" onboarding paths
|
|
253
|
+
- Show keyboard shortcuts to power users, guided tours to beginners
|
|
254
|
+
- Progressively reduce hand-holding as usage increases
|
|
255
|
+
- Allow manual skill-level toggle in settings
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Sign-Up Flow
|
|
260
|
+
|
|
261
|
+
### Reducing Friction
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
Minimal sign-up (3 fields max):
|
|
265
|
+
┌────────────────────────────────┐
|
|
266
|
+
│ Get started │
|
|
267
|
+
│ │
|
|
268
|
+
│ Email: [ ] │
|
|
269
|
+
│ Password: [ ] │
|
|
270
|
+
│ │
|
|
271
|
+
│ [Create Account] │
|
|
272
|
+
│ │
|
|
273
|
+
│ ── or continue with ── │
|
|
274
|
+
│ [Google] [GitHub] [SSO] │
|
|
275
|
+
│ │
|
|
276
|
+
│ Already have an account? │
|
|
277
|
+
│ Sign in │
|
|
278
|
+
└────────────────────────────────┘
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Best practices:**
|
|
282
|
+
- Social login / SSO options reduce friction significantly
|
|
283
|
+
- Defer non-essential fields (name, company) to post-sign-up
|
|
284
|
+
- Email-first flow: collect email, then ask for password on next step
|
|
285
|
+
- Magic link option for password-free sign-up
|
|
286
|
+
- Show password requirements inline, not after failed submission
|
|
287
|
+
- Single-field entry: email only, then decide sign-in vs. sign-up
|
|
288
|
+
|
|
289
|
+
### Progressive Profiling
|
|
290
|
+
|
|
291
|
+
Collect user information over time, not all at once.
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
Sign-up: Email + password only
|
|
295
|
+
First use: "What's your name?" (in-context)
|
|
296
|
+
Day 3: "What's your team size?" (when relevant)
|
|
297
|
+
Day 7: "Connect your calendar?" (when value is clear)
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
- Each request provides clear value to the user
|
|
301
|
+
- Ask in context (team size when inviting first member)
|
|
302
|
+
- Never block core features behind profile completion
|
|
303
|
+
- Show profile completion percentage (optional, gamification)
|
|
304
|
+
|
|
305
|
+
### Deferred Registration
|
|
306
|
+
|
|
307
|
+
- Let users try the product before requiring sign-up
|
|
308
|
+
- Save anonymous work and transfer to account on registration
|
|
309
|
+
- Show value before asking for commitment
|
|
310
|
+
- "Continue as guest" option where applicable
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## First-Run Experience
|
|
315
|
+
|
|
316
|
+
### Blank Slate Design
|
|
317
|
+
|
|
318
|
+
Every empty screen is an opportunity to onboard:
|
|
319
|
+
|
|
320
|
+
| Screen | Instead of "No data" | Show |
|
|
321
|
+
|--------|---------------------|------|
|
|
322
|
+
| Dashboard | Empty widgets | Pre-configured widgets with sample data |
|
|
323
|
+
| Project list | "No projects" | Templates + "Create first project" CTA |
|
|
324
|
+
| Inbox | "No messages" | "Invite your team to start conversations" |
|
|
325
|
+
| Analytics | "No data yet" | "Connect a data source" + preview |
|
|
326
|
+
|
|
327
|
+
### Starter Templates
|
|
328
|
+
|
|
329
|
+
- Offer 3-5 templates relevant to user's role/industry
|
|
330
|
+
- Preview template before selecting
|
|
331
|
+
- "Start from scratch" always available
|
|
332
|
+
- Templates should be fully functional, not just layouts
|
|
333
|
+
- Allow customization immediately after selection
|
|
334
|
+
|
|
335
|
+
### Guided Setup Wizards
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
Step 1 Step 2 Step 3 Done!
|
|
339
|
+
[Profile] ──→ [Team] ──→ [Integrations] ──→ [🎉]
|
|
340
|
+
● ○ ○ ○
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
- Maximum 3-5 steps
|
|
344
|
+
- Show progress and allow skipping each step
|
|
345
|
+
- Save progress if user abandons mid-wizard
|
|
346
|
+
- Offer "Do this later" for optional steps
|
|
347
|
+
- Each step should deliver immediate value
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Re-Engagement
|
|
352
|
+
|
|
353
|
+
### Return User Flows
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
┌─────────────────────────────────────────┐
|
|
357
|
+
│ Welcome back, Alex! │
|
|
358
|
+
│ │
|
|
359
|
+
│ Since you were last here: │
|
|
360
|
+
│ • 3 new comments on "Q4 Report" │
|
|
361
|
+
│ • Sarah shared "Design Brief" with you │
|
|
362
|
+
│ • Your trial ends in 5 days │
|
|
363
|
+
│ │
|
|
364
|
+
│ [Go to Q4 Report] [View all updates] │
|
|
365
|
+
└─────────────────────────────────────────┘
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
- Show relevant updates since last visit
|
|
369
|
+
- Deep-link to unfinished work or pending actions
|
|
370
|
+
- Don't re-show completed onboarding steps
|
|
371
|
+
- Feature announcements for major changes only
|
|
372
|
+
|
|
373
|
+
### What's New Patterns
|
|
374
|
+
|
|
375
|
+
- Changelog accessible from a "What's new" menu item or badge
|
|
376
|
+
- Brief inline announcements for features relevant to user's workflow
|
|
377
|
+
- "New" badges on navigation items (auto-dismiss after first visit)
|
|
378
|
+
- Major updates: one-time modal with clear benefit statement
|
|
379
|
+
- Never block user workflow for feature announcements
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## Measuring Success
|
|
384
|
+
|
|
385
|
+
### Key Metrics
|
|
386
|
+
|
|
387
|
+
| Metric | Target | How to measure |
|
|
388
|
+
|--------|--------|---------------|
|
|
389
|
+
| Sign-up completion | > 85% | Users who complete sign-up / started |
|
|
390
|
+
| Onboarding completion | > 65% | Users who finish checklist / total |
|
|
391
|
+
| Time to first value | < 5 min | Time from sign-up to activation event |
|
|
392
|
+
| Day 1 retention | > 40% | Users who return the day after sign-up |
|
|
393
|
+
| Day 7 retention | > 25% | Users who return within first week |
|
|
394
|
+
| Activation rate | > 30% | Users who reach aha moment / total sign-ups |
|
|
395
|
+
| Tour skip rate | Monitor | High skip may indicate poor tour design |
|
|
396
|
+
| Checklist item completion | Track per item | Identifies friction points |
|
|
397
|
+
|
|
398
|
+
### Drop-Off Analysis
|
|
399
|
+
|
|
400
|
+
- Funnel visualization for each onboarding step
|
|
401
|
+
- Identify where users abandon (highest drop-off = biggest opportunity)
|
|
402
|
+
- Segment by user source, role, and device
|
|
403
|
+
- A/B test onboarding variations against activation rate
|
|
404
|
+
- Qualitative: user session recordings of first-run experience
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## Anti-Patterns
|
|
409
|
+
|
|
410
|
+
1. **Mandatory lengthy tours** — Forcing users through 10+ steps before they can use the product
|
|
411
|
+
2. **Information overload** — Teaching everything at once instead of progressively
|
|
412
|
+
3. **No skip option** — Trapping users in onboarding flows
|
|
413
|
+
4. **Ignoring return users** — Showing the same onboarding to returning users
|
|
414
|
+
5. **Empty states with no guidance** — "No data" with no next step
|
|
415
|
+
6. **Asking too much at sign-up** — 10-field registration forms
|
|
416
|
+
7. **Irrelevant personalization questions** — Asking role when it doesn't affect the experience
|
|
417
|
+
8. **Celebrating too early** — Confetti when user hasn't done anything meaningful yet
|
|
418
|
+
9. **Feature dumping** — Showing every feature in tooltips before user needs them
|
|
419
|
+
10. **No measurement** — Not tracking where users drop off in onboarding
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## Sources
|
|
424
|
+
|
|
425
|
+
- [UserOnboard](https://www.useronboard.com/) — Real product onboarding teardowns
|
|
426
|
+
- [ProductLed: User Activation](https://productled.com/) — Activation frameworks
|
|
427
|
+
- [Appcues: State of User Onboarding](https://www.appcues.com/) — Onboarding benchmarks
|
|
428
|
+
- [Nielsen Norman Group: Onboarding](https://www.nngroup.com/articles/onboarding/) — UX research
|
|
429
|
+
- [Intercom: Onboarding](https://www.intercom.com/blog/onboarding/) — SaaS onboarding best practices
|
|
430
|
+
- [Reforge: Activation](https://www.reforge.com/) — Growth frameworks
|