@elsahafy/ux-mcp-server 2.0.0 → 4.0.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.
@@ -0,0 +1,613 @@
1
+ {
2
+ "name": "SaaS Product UX Patterns",
3
+ "description": "User experience patterns specific to Software-as-a-Service products, including onboarding, pricing, freemium, and retention strategies",
4
+ "saas_ux_principles": {
5
+ "time_to_value": {
6
+ "description": "How quickly users experience value from the product",
7
+ "importance": "Critical for activation and retention",
8
+ "goal": "Minimize time to first 'aha moment'",
9
+ "strategies": [
10
+ "Pre-populate with sample data",
11
+ "Guided onboarding",
12
+ "Progressive disclosure (don't overwhelm)",
13
+ "Quick wins (easy early tasks)",
14
+ "Clear next steps"
15
+ ]
16
+ },
17
+ "product_led_growth": {
18
+ "description": "Product itself drives acquisition, activation, and retention",
19
+ "characteristics": [
20
+ "Freemium or free trial",
21
+ "Self-service onboarding",
22
+ "In-app upsells",
23
+ "Viral features (sharing, collaboration)",
24
+ "Data-driven optimization"
25
+ ],
26
+ "examples": ["Slack", "Dropbox", "Notion", "Figma"]
27
+ },
28
+ "progressive_disclosure": {
29
+ "description": "Reveal features gradually, not all at once",
30
+ "when": "User is learning the product",
31
+ "techniques": [
32
+ "Wizards for multi-step tasks",
33
+ "Tooltips on first use",
34
+ "Feature discovery (highlight new features)",
35
+ "Graduated complexity (simple mode → advanced mode)"
36
+ ]
37
+ }
38
+ },
39
+ "onboarding_patterns": {
40
+ "welcome_experience": {
41
+ "goals": ["Set expectations", "Build excitement", "Collect necessary info", "Guide to first value"],
42
+ "steps": {
43
+ "1_welcome_message": {
44
+ "purpose": "Set tone, show value proposition",
45
+ "example": "Welcome to Acme! Let's get you set up in 2 minutes.",
46
+ "best_practices": ["Short (1-2 sentences)", "Friendly tone", "Set time expectation"]
47
+ },
48
+ "2_account_setup": {
49
+ "collect": ["Name", "Role (for personalization)", "Team size (for relevant features)", "Use case"],
50
+ "best_practices": [
51
+ "Ask only what's necessary",
52
+ "Explain why you're asking",
53
+ "Allow skip (collect later if needed)",
54
+ "Pre-fill if possible (OAuth)"
55
+ ]
56
+ },
57
+ "3_product_tour": {
58
+ "types": {
59
+ "tooltip_tour": {
60
+ "description": "Sequential tooltips highlighting features",
61
+ "pros": ["Simple", "Non-blocking"],
62
+ "cons": ["Easy to skip", "Out of context"],
63
+ "use_when": "Simple products, 3-5 key features"
64
+ },
65
+ "interactive_walkthrough": {
66
+ "description": "User performs tasks, app guides them",
67
+ "pros": ["Learning by doing", "Memorable"],
68
+ "cons": ["More complex to build"],
69
+ "use_when": "Complex products, critical workflows",
70
+ "tools": ["Appcues", "Pendo", "Chameleon", "Intro.js"]
71
+ },
72
+ "video_tutorial": {
73
+ "description": "Short video showing key features",
74
+ "pros": ["Engaging", "Visual learning"],
75
+ "cons": ["Passive", "Longer time investment"],
76
+ "use_when": "Visual products, complex workflows",
77
+ "best_practices": ["< 2 minutes", "Skippable", "Auto-play muted"]
78
+ },
79
+ "empty_state_guidance": {
80
+ "description": "Show what to do when there's no data",
81
+ "example": "No projects yet. Create your first project to get started.",
82
+ "pros": ["Contextual", "Non-intrusive"],
83
+ "cons": ["Easy to miss"],
84
+ "use_when": "Data-driven products",
85
+ "best_practices": ["Clear CTA", "Show example/preview", "Link to docs/help"]
86
+ }
87
+ },
88
+ "recommended": "Combination: Empty state guidance + optional interactive tour"
89
+ },
90
+ "4_aha_moment": {
91
+ "description": "Moment user realizes product value",
92
+ "examples": {
93
+ "slack": "First message sent and received",
94
+ "dropbox": "First file synced across devices",
95
+ "calendly": "First meeting booked",
96
+ "notion": "First page created and shared"
97
+ },
98
+ "design_for_it": [
99
+ "Identify your product's 'aha moment'",
100
+ "Design onboarding to reach it quickly",
101
+ "Celebrate it (confetti, success message)",
102
+ "Track time to aha moment (metric)"
103
+ ]
104
+ }
105
+ },
106
+ "personalization": {
107
+ "role_based": "Show different features based on role (Designer vs Developer)",
108
+ "use_case_based": "Tailor onboarding to stated use case",
109
+ "progress_based": "Adapt based on how far they've progressed"
110
+ }
111
+ },
112
+ "empty_states": {
113
+ "description": "What user sees when there's no data yet",
114
+ "importance": "Common for new users, critical for activation",
115
+ "elements": {
116
+ "illustration": { "use": "Visual interest", "style": "Friendly, on-brand" },
117
+ "headline": { "format": "Clear, specific (not just 'No items')", "example": "Your dashboard is empty" },
118
+ "description": { "content": "What to do next", "example": "Create your first project to see analytics here" },
119
+ "cta": { "text": "Action-oriented", "example": "Create Project (not just 'Get Started')" },
120
+ "help_link": { "text": "Link to docs or video", "example": "Learn more about projects" }
121
+ },
122
+ "examples": {
123
+ "good": {
124
+ "headline": "No projects yet",
125
+ "description": "Projects help you organize your work. Create one to get started.",
126
+ "cta": "Create Your First Project",
127
+ "help": "Learn about projects"
128
+ },
129
+ "bad": {
130
+ "headline": "Empty",
131
+ "description": "(no description)",
132
+ "cta": "Add",
133
+ "help": "(no help)"
134
+ }
135
+ }
136
+ },
137
+ "progress_indicators": {
138
+ "description": "Show users how far they've come in onboarding",
139
+ "types": {
140
+ "checklist": {
141
+ "example": "✓ Create account\n✓ Set up profile\n○ Invite team\n○ Create first project",
142
+ "pros": ["Clear steps", "Satisfying to complete"],
143
+ "placement": "Dashboard widget or sidebar"
144
+ },
145
+ "progress_bar": {
146
+ "example": "Profile 60% complete",
147
+ "pros": ["Visual progress", "Motivating"],
148
+ "placement": "Profile settings"
149
+ },
150
+ "step_indicator": {
151
+ "example": "Step 2 of 4",
152
+ "pros": ["Sets expectations"],
153
+ "placement": "Multi-step wizards"
154
+ }
155
+ },
156
+ "psychology": "Zeigarnik effect (people remember incomplete tasks, motivated to complete)"
157
+ },
158
+ "activation_metrics": {
159
+ "description": "Measure onboarding success",
160
+ "key_metrics": {
161
+ "activation_rate": {
162
+ "definition": "% of users who reach 'aha moment'",
163
+ "formula": "Users who completed key action / Total sign-ups",
164
+ "benchmark": "> 40% is good, > 60% is great"
165
+ },
166
+ "time_to_value": {
167
+ "definition": "Time from sign-up to first value",
168
+ "goal": "As short as possible (minutes, not hours)",
169
+ "measure": "Track time to key activation event"
170
+ },
171
+ "completion_rate": {
172
+ "definition": "% of users who complete onboarding",
173
+ "goal": "> 70%",
174
+ "note": "If low, identify drop-off points"
175
+ }
176
+ }
177
+ }
178
+ },
179
+ "pricing_ux": {
180
+ "pricing_page": {
181
+ "layout": {
182
+ "structure": "3-4 pricing tiers in cards",
183
+ "order": "Left to right: Cheapest → Most expensive (or highlight middle)",
184
+ "highlight": "Most popular tier (border, badge, 'Recommended')"
185
+ },
186
+ "tier_card_elements": {
187
+ "tier_name": { "example": "Starter, Pro, Enterprise", "style": "Clear, not clever" },
188
+ "price": {
189
+ "format": "$49/month",
190
+ "prominent": "Large font, bold",
191
+ "annual_discount": "Show monthly price for annual plan: $49/mo (billed annually $588)"
192
+ },
193
+ "description": { "content": "Who it's for", "example": "For individuals and small teams" },
194
+ "features_list": {
195
+ "format": "Bullet list with checkmarks",
196
+ "order": "Most important first",
197
+ "length": "5-10 key features (not exhaustive)",
198
+ "differentiators": "Highlight what's different from lower tier"
199
+ },
200
+ "cta": {
201
+ "text": "Start Free Trial or Sign Up",
202
+ "style": "Primary button, prominent",
203
+ "variation": "Can vary by tier (e.g., 'Contact Sales' for Enterprise)"
204
+ }
205
+ },
206
+ "comparison_table": {
207
+ "purpose": "Detailed feature comparison for all tiers",
208
+ "placement": "Below pricing cards (expandable or linked)",
209
+ "structure": "Rows: features, Columns: tiers",
210
+ "best_practices": [
211
+ "Group features by category",
212
+ "Use checkmarks/X (not text)",
213
+ "Sticky header (tiers visible on scroll)",
214
+ "Highlight differences (not just list all features)"
215
+ ]
216
+ },
217
+ "faq": {
218
+ "common_questions": [
219
+ "Can I change plans later?",
220
+ "What payment methods do you accept?",
221
+ "Is there a free trial?",
222
+ "Can I cancel anytime?",
223
+ "What happens when I reach my limit?"
224
+ ],
225
+ "placement": "Below pricing cards"
226
+ }
227
+ },
228
+ "pricing_models": {
229
+ "freemium": {
230
+ "description": "Free tier + paid upgrade",
231
+ "free_tier_strategies": {
232
+ "feature_limited": "Basic features free, advanced paid (Slack, Notion)",
233
+ "usage_limited": "Limited uses/month, pay for more (Grammarly)",
234
+ "seat_limited": "Free for 1 user, pay for team (Figma)",
235
+ "time_limited": "Full features, limited time (Canva)",
236
+ "hybrid": "Combination (e.g., limited features AND limited users)"
237
+ },
238
+ "upgrade_triggers": {
239
+ "paywall": "Hit limit, prompt to upgrade",
240
+ "feature_discovery": "Try to use premium feature, show upgrade prompt",
241
+ "periodic_reminder": "Occasional upsell (not nagging)",
242
+ "value_demonstration": "Show premium value in free tier (e.g., 'Unlock advanced analytics')"
243
+ },
244
+ "pros": ["Low barrier to entry", "Viral growth", "Try before buy"],
245
+ "cons": ["Many free users (support cost)", "Hard to balance free vs paid"],
246
+ "conversion_target": "2-5% freemium → paid (industry benchmark)"
247
+ },
248
+ "free_trial": {
249
+ "description": "Full access for limited time",
250
+ "types": {
251
+ "time_limited": {
252
+ "duration": "7, 14, or 30 days",
253
+ "best_practice": "Match trial length to time-to-value (short for quick value, long for complex products)"
254
+ },
255
+ "feature_limited_trial": "Limited features for unlimited time (similar to freemium)",
256
+ "credit_card_required": {
257
+ "pros": ["Higher intent users", "Lower churn after trial"],
258
+ "cons": ["Lower sign-up rate", "Risk of unexpected charges"],
259
+ "best_practice": "If requiring card, be VERY clear about trial end and auto-charge"
260
+ },
261
+ "no_credit_card": {
262
+ "pros": ["Higher sign-up rate", "Lower friction"],
263
+ "cons": ["Lower conversion (less commitment)"],
264
+ "best_practice": "Send email before trial ends, easy upgrade"
265
+ }
266
+ },
267
+ "trial_ux": {
268
+ "countdown": "Show days remaining (e.g., '5 days left in trial')",
269
+ "value_demonstration": "Highlight premium features they're using",
270
+ "conversion_prompt": "Email before trial ends: 'Your trial ends in 3 days. Upgrade to keep your data.'",
271
+ "grace_period": "Don't immediately lock out (offer 3-7 day grace to upgrade)"
272
+ }
273
+ },
274
+ "usage_based": {
275
+ "description": "Pay for what you use (API calls, seats, storage)",
276
+ "examples": ["AWS", "Twilio", "Stripe"],
277
+ "ux_challenges": {
278
+ "unpredictable_cost": "User doesn't know final cost",
279
+ "solution": "Usage dashboard, alerts when nearing limits, cost calculator"
280
+ },
281
+ "best_practices": [
282
+ "Show current usage prominently",
283
+ "Warn before hitting limits/overages",
284
+ "Provide cost estimator",
285
+ "Offer plans with included usage (hybrid)"
286
+ ]
287
+ },
288
+ "per_seat": {
289
+ "description": "Per user/month (most common B2B)",
290
+ "example": "$10/user/month",
291
+ "ux_considerations": {
292
+ "seat_management": "Easy to add/remove users",
293
+ "proration": "Clear explanation of mid-month changes",
294
+ "inactive_seats": "Archive inactive users to save cost"
295
+ }
296
+ }
297
+ },
298
+ "upgrade_prompts": {
299
+ "placement": {
300
+ "paywall": "When user hits limit (most direct)",
301
+ "feature_discovery": "When trying to use premium feature",
302
+ "dashboard": "Subtle upsell banner (not intrusive)",
303
+ "settings": "Billing/Plan page (always accessible)",
304
+ "email": "Periodic emails (not spam)"
305
+ },
306
+ "messaging": {
307
+ "value_focused": "Unlock advanced analytics (not just 'Upgrade to Pro')",
308
+ "urgency_optional": "Limited-time discount (if genuine)",
309
+ "clear_benefit": "Show what they get, not what they're missing"
310
+ },
311
+ "design": {
312
+ "modal": "For paywall (requires action)",
313
+ "banner": "For gentle upsell (dismissible)",
314
+ "inline": "Within feature ('Upgrade to unlock')",
315
+ "empty_state": "When no data due to limit ('Upgrade to add more projects')"
316
+ },
317
+ "best_practices": [
318
+ "Explain benefit clearly",
319
+ "One CTA (don't overload with options)",
320
+ "Allow dismiss (not modal trap)",
321
+ "Don't nag (respect 'no')",
322
+ "Time appropriately (after they see value, not day 1)"
323
+ ]
324
+ }
325
+ },
326
+ "user_retention": {
327
+ "engagement_loops": {
328
+ "habit_formation": {
329
+ "description": "Nir Eyal's Hook Model",
330
+ "phases": {
331
+ "trigger": { "external": "Email, notification", "internal": "User need (boredom → social media)" },
332
+ "action": { "description": "Easy action user takes", "example": "Open app, scroll feed" },
333
+ "variable_reward": { "description": "Unpredictable reward", "example": "Interesting content, likes, messages" },
334
+ "investment": { "description": "User puts in effort", "example": "Post content, follow people", "result": "Increases likelihood of return" }
335
+ },
336
+ "ethical_consideration": "Use to build helpful habits, not addiction"
337
+ },
338
+ "notification_strategy": {
339
+ "types": {
340
+ "transactional": {
341
+ "description": "Action required (password reset, invoice)",
342
+ "frequency": "As needed",
343
+ "opt_out": "Should not be opt-outable"
344
+ },
345
+ "engagement": {
346
+ "description": "Encourage return (new features, updates)",
347
+ "frequency": "Weekly or less",
348
+ "opt_out": "Must be opt-outable"
349
+ },
350
+ "social": {
351
+ "description": "Social activity (mentions, likes, comments)",
352
+ "frequency": "Real-time or digest",
353
+ "opt_out": "Granular control (per type)"
354
+ }
355
+ },
356
+ "best_practices": [
357
+ "Respect notification preferences",
358
+ "Batch notifications (digest)",
359
+ "Timely and relevant (not spam)",
360
+ "Clear unsubscribe",
361
+ "Personalized (not generic)"
362
+ ],
363
+ "anti_patterns": ["Daily emails to inactive users", "Re-enabling notifications user disabled", "No unsubscribe link"]
364
+ }
365
+ },
366
+ "feature_adoption": {
367
+ "discovery": {
368
+ "tooltips": "Highlight new features (dismissible)",
369
+ "whats_new": "Changelog or What's New section",
370
+ "in_app_announcements": "Modal or banner for major features",
371
+ "empty_states": "Suggest features when relevant ('Try our new reporting feature')"
372
+ },
373
+ "education": {
374
+ "help_docs": "Searchable, comprehensive",
375
+ "video_tutorials": "For complex features",
376
+ "webinars": "Live training (B2B SaaS)",
377
+ "in_app_help": "Contextual help (? icon, tooltips)"
378
+ }
379
+ },
380
+ "churn_prevention": {
381
+ "identify_churn_risk": {
382
+ "signals": ["Decreasing usage", "Support tickets", "Approaching renewal without activity", "Failed payment"],
383
+ "actions": ["Proactive outreach (email, in-app)", "Offer help/training", "Win-back discount (last resort)"]
384
+ },
385
+ "cancellation_flow": {
386
+ "survey": {
387
+ "ask_why": "Why are you canceling? (multiple choice + open-ended)",
388
+ "reasons": ["Too expensive", "Not using it", "Missing features", "Found alternative", "Other"],
389
+ "use": "Identify product issues, inform roadmap"
390
+ },
391
+ "save_attempts": {
392
+ "pause_subscription": "Pause instead of cancel (for temporary non-use)",
393
+ "downgrade": "Offer cheaper plan",
394
+ "discount": "Retention discount (use sparingly, can devalue product)",
395
+ "help": "Offer support call ('Before you go, can we help?')"
396
+ },
397
+ "exit_experience": {
398
+ "data_export": "Provide easy data export",
399
+ "confirmation": "Clear confirmation ('Your subscription will end on [date]')",
400
+ "reactivation": "Easy to reactivate ('Come back anytime')"
401
+ },
402
+ "ethics": "Make cancellation easy (don't use dark patterns like hard-to-cancel)"
403
+ }
404
+ }
405
+ },
406
+ "collaboration_features": {
407
+ "team_management": {
408
+ "invite_flow": {
409
+ "invite_method": ["Email invite", "Shareable link", "CSV upload (bulk)"],
410
+ "permissions": "Set role during invite (Admin, Editor, Viewer)",
411
+ "onboarding": "Send welcome email to invitees"
412
+ },
413
+ "roles_permissions": {
414
+ "common_roles": {
415
+ "admin": "Full access (billing, settings, users)",
416
+ "member": "Use product, invite others",
417
+ "guest": "Limited access (view-only or specific projects)"
418
+ },
419
+ "ux": "Clear roles table, easy to understand permissions"
420
+ },
421
+ "seat_management": {
422
+ "add_users": "Easy to add (in-app)",
423
+ "remove_users": "Easy to remove/deactivate",
424
+ "cost_preview": "Show cost impact ('Adding 5 users will increase bill by $50/mo')"
425
+ }
426
+ },
427
+ "real_time_collaboration": {
428
+ "presence": {
429
+ "avatars": "Show who's online/viewing document",
430
+ "cursors": "Show collaborator cursors (Figma, Google Docs)",
431
+ "typing_indicators": "Show who's typing"
432
+ },
433
+ "conflict_resolution": {
434
+ "operational_transform": "Tech for conflict-free collaborative editing",
435
+ "last_write_wins": "Simpler, but can lose edits",
436
+ "ux": "Show when someone else is editing, prevent overwrites"
437
+ }
438
+ },
439
+ "sharing": {
440
+ "share_button": {
441
+ "prominent": "Always visible",
442
+ "modal": "Share dialog with options"
443
+ },
444
+ "sharing_options": {
445
+ "link_sharing": {
446
+ "public_link": "Anyone with link can view",
447
+ "permissions": "View-only or Edit",
448
+ "expiration": "Optional link expiration",
449
+ "password": "Optional password protection"
450
+ },
451
+ "email_sharing": "Invite by email (with role)",
452
+ "org_sharing": "Share within organization"
453
+ },
454
+ "visibility_indicator": {
455
+ "show": "Who has access (list of people/teams)",
456
+ "icon": "Lock icon (private) or Globe icon (public)"
457
+ }
458
+ },
459
+ "viral_loops": {
460
+ "description": "Features that encourage users to invite others",
461
+ "examples": {
462
+ "collaboration_required": "Google Docs (invite to edit)",
463
+ "network_effects": "Slack (more valuable with more team members)",
464
+ "referral_incentives": "Dropbox (invite = free storage)"
465
+ },
466
+ "ethical_consideration": "Provide value, don't spam contacts"
467
+ }
468
+ },
469
+ "settings_preferences": {
470
+ "settings_organization": {
471
+ "categories": {
472
+ "account": "Profile, password, email",
473
+ "notifications": "Email, push, in-app preferences",
474
+ "billing": "Plan, payment method, invoices",
475
+ "team": "Team members, roles (if applicable)",
476
+ "integrations": "Connected apps, API keys",
477
+ "preferences": "Language, timezone, theme",
478
+ "security": "2FA, sessions, activity log",
479
+ "data": "Export, delete account"
480
+ },
481
+ "navigation": "Sidebar or tabs (clear categories)"
482
+ },
483
+ "notification_preferences": {
484
+ "granularity": "Per notification type (mentions, updates, marketing)",
485
+ "channels": "Email, push, in-app (separate toggles)",
486
+ "frequency": "Real-time, daily digest, weekly digest",
487
+ "ux": "Easy to find, clear labels, save state immediately"
488
+ },
489
+ "data_portability": {
490
+ "export_data": {
491
+ "format": "JSON, CSV, or platform-specific (e.g., .sketch)",
492
+ "scope": "All data or specific projects",
493
+ "delivery": "Download link or email",
494
+ "processing": "Background job for large exports ('We'll email you when ready')"
495
+ },
496
+ "delete_account": {
497
+ "confirm": "Require confirmation (serious action)",
498
+ "grace_period": "Optional: 30-day grace to undo",
499
+ "data_deletion": "Clear about what's deleted and what's retained (legal requirements)",
500
+ "export_first": "Offer data export before deletion"
501
+ }
502
+ }
503
+ },
504
+ "best_practices": [
505
+ "Minimize time to value (first 'aha moment' ASAP)",
506
+ "Use empty states to guide new users",
507
+ "Provide interactive onboarding (learning by doing)",
508
+ "Personalize onboarding based on role/use case",
509
+ "Show progress indicators (checklists, progress bars)",
510
+ "Design pricing page for clarity (3-4 tiers, highlight popular)",
511
+ "Be transparent about pricing (no hidden costs)",
512
+ "Make upgrade prompts value-focused (not just 'Upgrade!')",
513
+ "Easy cancellation (don't use dark patterns)",
514
+ "Offer data export (GDPR, user trust)",
515
+ "Track activation metrics (activation rate, time to value)",
516
+ "Use notifications strategically (not spam)",
517
+ "Provide granular notification preferences",
518
+ "Make collaboration features prominent (team value)",
519
+ "Show real-time presence (who's online)",
520
+ "Easy team management (invite, remove, roles)",
521
+ "Churn prevention (identify risk, proactive outreach)",
522
+ "Ask why users cancel (exit survey)",
523
+ "Celebrate milestones (first project, 100 users, etc.)",
524
+ "Product-led growth (product drives acquisition)"
525
+ ],
526
+ "anti_patterns": [
527
+ "Overwhelming onboarding (too many steps)",
528
+ "Forcing features on new users (let them explore)",
529
+ "No empty state guidance (users stuck)",
530
+ "Hidden costs (reveal price at checkout)",
531
+ "Hard to cancel subscriptions (dark pattern)",
532
+ "Nagging for upgrades (respect 'no')",
533
+ "Spamming notifications (no opt-out)",
534
+ "Complicated pricing (confusing tiers)",
535
+ "No free trial or freemium (high barrier)",
536
+ "Forcing credit card for free trial (higher friction)",
537
+ "No data export (lock-in)",
538
+ "No cancellation survey (miss insights)",
539
+ "Ignoring churn signals (reactive instead of proactive)",
540
+ "Poor team management UX (hard to invite/remove)",
541
+ "No notification preferences (one-size-fits-all)",
542
+ "Auto-enrolling in marketing emails (opt-in, not opt-out)",
543
+ "No progress indicators (users lost)",
544
+ "Fake urgency in pricing ('Sale ends soon!' but always on sale)",
545
+ "Unclear billing (surprise charges)",
546
+ "No grace period after trial (immediate lockout)"
547
+ ],
548
+ "metrics": {
549
+ "activation": {
550
+ "activation_rate": "% of sign-ups who reach 'aha moment'",
551
+ "time_to_value": "Time from sign-up to first value",
552
+ "onboarding_completion": "% who complete onboarding"
553
+ },
554
+ "engagement": {
555
+ "dau_mau": "Daily Active Users / Monthly Active Users (stickiness)",
556
+ "feature_adoption": "% of users using specific features",
557
+ "session_duration": "Time spent per session"
558
+ },
559
+ "retention": {
560
+ "retention_rate": "% of users who return after X days (Day 1, 7, 30)",
561
+ "churn_rate": "% of users who cancel/stop using",
562
+ "expansion_mrr": "Revenue from upsells/expansions"
563
+ },
564
+ "revenue": {
565
+ "mrr": "Monthly Recurring Revenue",
566
+ "arr": "Annual Recurring Revenue",
567
+ "arpu": "Average Revenue Per User",
568
+ "ltv": "Lifetime Value (average revenue per customer over lifetime)",
569
+ "cac": "Customer Acquisition Cost",
570
+ "ltv_cac_ratio": "LTV / CAC (should be > 3)"
571
+ },
572
+ "conversion": {
573
+ "trial_to_paid": "% of trial users who convert to paid",
574
+ "freemium_to_paid": "% of free users who upgrade (2-5% typical)",
575
+ "upgrade_rate": "% of users who upgrade to higher tier"
576
+ }
577
+ },
578
+ "case_studies": {
579
+ "slack": {
580
+ "growth_strategy": "Freemium + product-led growth",
581
+ "activation": "2,000 team messages = strong activation",
582
+ "viral_loop": "Team invites (collaboration required)",
583
+ "result": "Fastest-growing SaaS ever (at time)"
584
+ },
585
+ "dropbox": {
586
+ "growth_strategy": "Freemium + referral program",
587
+ "incentive": "Invite friend = free storage for both",
588
+ "result": "3900% growth in 15 months (viral growth)"
589
+ },
590
+ "notion": {
591
+ "growth_strategy": "Freemium + templates + community",
592
+ "activation": "Create first page",
593
+ "viral_loop": "Share pages/templates publicly",
594
+ "result": "10M+ users, product-led growth"
595
+ },
596
+ "calendly": {
597
+ "growth_strategy": "Freemium + inherent virality",
598
+ "viral_loop": "Every booking exposes invitee to Calendly",
599
+ "result": "Viral growth without paid marketing"
600
+ }
601
+ },
602
+ "resources": [
603
+ "Product-Led Growth (Wes Bush) - Book",
604
+ "Hooked (Nir Eyal) - Habit-forming products",
605
+ "The Lean Startup (Eric Ries) - Build-measure-learn",
606
+ "SaaS Metrics 2.0 (David Skok) - Key SaaS metrics",
607
+ "Reforge - Product-led growth course",
608
+ "OpenView Partners - SaaS resources",
609
+ "SaaStr - SaaS community and resources",
610
+ "Intercom on Onboarding - Onboarding best practices",
611
+ "ProfitWell - Pricing and retention insights"
612
+ ]
613
+ }