@wazir-dev/cli 1.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.
- package/AGENTS.md +111 -0
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.md +314 -0
- package/assets/composition-engine.mmd +34 -0
- package/assets/demo-script.sh +17 -0
- package/assets/logo-dark.svg +14 -0
- package/assets/logo.svg +14 -0
- package/assets/pipeline.mmd +39 -0
- package/assets/record-demo.sh +51 -0
- package/docs/README.md +51 -0
- package/docs/adapters/context-mode.md +60 -0
- package/docs/concepts/architecture.md +87 -0
- package/docs/concepts/artifact-model.md +60 -0
- package/docs/concepts/composition-engine.md +36 -0
- package/docs/concepts/indexing-and-recall.md +160 -0
- package/docs/concepts/observability.md +41 -0
- package/docs/concepts/roles-and-workflows.md +59 -0
- package/docs/concepts/terminology-policy.md +27 -0
- package/docs/getting-started/01-installation.md +78 -0
- package/docs/getting-started/02-first-run.md +102 -0
- package/docs/getting-started/03-adding-to-project.md +15 -0
- package/docs/getting-started/04-host-setup.md +15 -0
- package/docs/guides/ci-integration.md +15 -0
- package/docs/guides/creating-skills.md +15 -0
- package/docs/guides/expertise-module-authoring.md +15 -0
- package/docs/guides/hook-development.md +15 -0
- package/docs/guides/memory-and-learnings.md +34 -0
- package/docs/guides/multi-host-export.md +15 -0
- package/docs/guides/troubleshooting.md +101 -0
- package/docs/guides/writing-custom-roles.md +15 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
- package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
- package/docs/readmes/INDEX.md +99 -0
- package/docs/readmes/features/expertise/README.md +171 -0
- package/docs/readmes/features/exports/README.md +222 -0
- package/docs/readmes/features/hooks/README.md +103 -0
- package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
- package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
- package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
- package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
- package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
- package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
- package/docs/readmes/features/hooks/session-start.md +119 -0
- package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
- package/docs/readmes/features/roles/README.md +157 -0
- package/docs/readmes/features/roles/clarifier.md +152 -0
- package/docs/readmes/features/roles/content-author.md +190 -0
- package/docs/readmes/features/roles/designer.md +193 -0
- package/docs/readmes/features/roles/executor.md +184 -0
- package/docs/readmes/features/roles/learner.md +210 -0
- package/docs/readmes/features/roles/planner.md +182 -0
- package/docs/readmes/features/roles/researcher.md +164 -0
- package/docs/readmes/features/roles/reviewer.md +184 -0
- package/docs/readmes/features/roles/specifier.md +162 -0
- package/docs/readmes/features/roles/verifier.md +215 -0
- package/docs/readmes/features/schemas/README.md +178 -0
- package/docs/readmes/features/skills/README.md +63 -0
- package/docs/readmes/features/skills/brainstorming.md +96 -0
- package/docs/readmes/features/skills/debugging.md +148 -0
- package/docs/readmes/features/skills/design.md +120 -0
- package/docs/readmes/features/skills/prepare-next.md +109 -0
- package/docs/readmes/features/skills/run-audit.md +159 -0
- package/docs/readmes/features/skills/scan-project.md +109 -0
- package/docs/readmes/features/skills/self-audit.md +176 -0
- package/docs/readmes/features/skills/tdd.md +137 -0
- package/docs/readmes/features/skills/using-skills.md +92 -0
- package/docs/readmes/features/skills/verification.md +120 -0
- package/docs/readmes/features/skills/writing-plans.md +104 -0
- package/docs/readmes/features/tooling/README.md +320 -0
- package/docs/readmes/features/workflows/README.md +186 -0
- package/docs/readmes/features/workflows/author.md +181 -0
- package/docs/readmes/features/workflows/clarify.md +154 -0
- package/docs/readmes/features/workflows/design-review.md +171 -0
- package/docs/readmes/features/workflows/design.md +169 -0
- package/docs/readmes/features/workflows/discover.md +162 -0
- package/docs/readmes/features/workflows/execute.md +173 -0
- package/docs/readmes/features/workflows/learn.md +167 -0
- package/docs/readmes/features/workflows/plan-review.md +165 -0
- package/docs/readmes/features/workflows/plan.md +170 -0
- package/docs/readmes/features/workflows/prepare-next.md +167 -0
- package/docs/readmes/features/workflows/review.md +169 -0
- package/docs/readmes/features/workflows/run-audit.md +191 -0
- package/docs/readmes/features/workflows/spec-challenge.md +159 -0
- package/docs/readmes/features/workflows/specify.md +160 -0
- package/docs/readmes/features/workflows/verify.md +177 -0
- package/docs/readmes/packages/README.md +50 -0
- package/docs/readmes/packages/ajv.md +117 -0
- package/docs/readmes/packages/context-mode.md +118 -0
- package/docs/readmes/packages/gray-matter.md +116 -0
- package/docs/readmes/packages/node-test.md +137 -0
- package/docs/readmes/packages/yaml.md +112 -0
- package/docs/reference/configuration-reference.md +159 -0
- package/docs/reference/expertise-index.md +52 -0
- package/docs/reference/git-flow.md +43 -0
- package/docs/reference/hooks.md +87 -0
- package/docs/reference/host-exports.md +50 -0
- package/docs/reference/launch-checklist.md +172 -0
- package/docs/reference/marketplace-listings.md +76 -0
- package/docs/reference/release-process.md +34 -0
- package/docs/reference/roles-reference.md +77 -0
- package/docs/reference/skills.md +33 -0
- package/docs/reference/templates.md +29 -0
- package/docs/reference/tooling-cli.md +94 -0
- package/docs/truth-claims.yaml +222 -0
- package/expertise/PROGRESS.md +63 -0
- package/expertise/README.md +18 -0
- package/expertise/antipatterns/PROGRESS.md +56 -0
- package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
- package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
- package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
- package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
- package/expertise/antipatterns/backend/index.md +24 -0
- package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
- package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
- package/expertise/antipatterns/code/async-antipatterns.md +622 -0
- package/expertise/antipatterns/code/code-smells.md +1186 -0
- package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
- package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
- package/expertise/antipatterns/code/index.md +27 -0
- package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
- package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
- package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
- package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
- package/expertise/antipatterns/design/dark-patterns.md +1121 -0
- package/expertise/antipatterns/design/index.md +22 -0
- package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
- package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
- package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
- package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
- package/expertise/antipatterns/frontend/index.md +23 -0
- package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
- package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
- package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
- package/expertise/antipatterns/index.md +31 -0
- package/expertise/antipatterns/performance/index.md +20 -0
- package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
- package/expertise/antipatterns/performance/premature-optimization.md +623 -0
- package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
- package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
- package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
- package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
- package/expertise/antipatterns/process/index.md +23 -0
- package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
- package/expertise/antipatterns/security/index.md +20 -0
- package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
- package/expertise/antipatterns/security/security-theater.md +843 -0
- package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
- package/expertise/architecture/PROGRESS.md +70 -0
- package/expertise/architecture/data/caching-architecture.md +671 -0
- package/expertise/architecture/data/data-consistency.md +574 -0
- package/expertise/architecture/data/data-modeling.md +536 -0
- package/expertise/architecture/data/event-streams-and-queues.md +634 -0
- package/expertise/architecture/data/index.md +25 -0
- package/expertise/architecture/data/search-architecture.md +663 -0
- package/expertise/architecture/data/sql-vs-nosql.md +708 -0
- package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
- package/expertise/architecture/decisions/build-vs-buy.md +616 -0
- package/expertise/architecture/decisions/index.md +23 -0
- package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
- package/expertise/architecture/decisions/technology-selection.md +616 -0
- package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
- package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
- package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
- package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
- package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
- package/expertise/architecture/distributed/index.md +25 -0
- package/expertise/architecture/distributed/saga-pattern.md +797 -0
- package/expertise/architecture/foundations/architectural-thinking.md +460 -0
- package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
- package/expertise/architecture/foundations/design-principles-solid.md +649 -0
- package/expertise/architecture/foundations/domain-driven-design.md +719 -0
- package/expertise/architecture/foundations/index.md +25 -0
- package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
- package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
- package/expertise/architecture/index.md +34 -0
- package/expertise/architecture/integration/api-design-graphql.md +638 -0
- package/expertise/architecture/integration/api-design-grpc.md +804 -0
- package/expertise/architecture/integration/api-design-rest.md +892 -0
- package/expertise/architecture/integration/index.md +25 -0
- package/expertise/architecture/integration/third-party-integration.md +795 -0
- package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
- package/expertise/architecture/integration/websockets-realtime.md +791 -0
- package/expertise/architecture/mobile-architecture/index.md +22 -0
- package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
- package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
- package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
- package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
- package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
- package/expertise/architecture/patterns/event-driven.md +797 -0
- package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
- package/expertise/architecture/patterns/index.md +27 -0
- package/expertise/architecture/patterns/layered-architecture.md +736 -0
- package/expertise/architecture/patterns/microservices.md +753 -0
- package/expertise/architecture/patterns/modular-monolith.md +692 -0
- package/expertise/architecture/patterns/monolith.md +626 -0
- package/expertise/architecture/patterns/plugin-architecture.md +735 -0
- package/expertise/architecture/patterns/serverless.md +780 -0
- package/expertise/architecture/scaling/database-scaling.md +615 -0
- package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
- package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
- package/expertise/architecture/scaling/index.md +24 -0
- package/expertise/architecture/scaling/multi-tenancy.md +800 -0
- package/expertise/architecture/scaling/stateless-design.md +787 -0
- package/expertise/backend/embedded-firmware.md +625 -0
- package/expertise/backend/go.md +853 -0
- package/expertise/backend/index.md +24 -0
- package/expertise/backend/java-spring.md +448 -0
- package/expertise/backend/node-typescript.md +625 -0
- package/expertise/backend/python-fastapi.md +724 -0
- package/expertise/backend/rust.md +458 -0
- package/expertise/backend/solidity.md +711 -0
- package/expertise/composition-map.yaml +443 -0
- package/expertise/content/foundations/content-modeling.md +395 -0
- package/expertise/content/foundations/editorial-standards.md +449 -0
- package/expertise/content/foundations/index.md +24 -0
- package/expertise/content/foundations/microcopy.md +455 -0
- package/expertise/content/foundations/terminology-governance.md +509 -0
- package/expertise/content/index.md +34 -0
- package/expertise/content/patterns/accessibility-copy.md +518 -0
- package/expertise/content/patterns/index.md +24 -0
- package/expertise/content/patterns/notification-content.md +433 -0
- package/expertise/content/patterns/sample-content.md +486 -0
- package/expertise/content/patterns/state-copy.md +439 -0
- package/expertise/design/PROGRESS.md +58 -0
- package/expertise/design/disciplines/dark-mode-theming.md +577 -0
- package/expertise/design/disciplines/design-systems.md +595 -0
- package/expertise/design/disciplines/index.md +25 -0
- package/expertise/design/disciplines/information-architecture.md +800 -0
- package/expertise/design/disciplines/interaction-design.md +788 -0
- package/expertise/design/disciplines/responsive-design.md +552 -0
- package/expertise/design/disciplines/usability-testing.md +516 -0
- package/expertise/design/disciplines/user-research.md +792 -0
- package/expertise/design/foundations/accessibility-design.md +796 -0
- package/expertise/design/foundations/color-theory.md +797 -0
- package/expertise/design/foundations/iconography.md +795 -0
- package/expertise/design/foundations/index.md +26 -0
- package/expertise/design/foundations/motion-and-animation.md +653 -0
- package/expertise/design/foundations/rtl-design.md +585 -0
- package/expertise/design/foundations/spacing-and-layout.md +607 -0
- package/expertise/design/foundations/typography.md +800 -0
- package/expertise/design/foundations/visual-hierarchy.md +761 -0
- package/expertise/design/index.md +32 -0
- package/expertise/design/patterns/authentication-flows.md +474 -0
- package/expertise/design/patterns/content-consumption.md +789 -0
- package/expertise/design/patterns/data-display.md +618 -0
- package/expertise/design/patterns/e-commerce.md +1494 -0
- package/expertise/design/patterns/feedback-and-states.md +642 -0
- package/expertise/design/patterns/forms-and-input.md +819 -0
- package/expertise/design/patterns/gamification.md +801 -0
- package/expertise/design/patterns/index.md +31 -0
- package/expertise/design/patterns/microinteractions.md +449 -0
- package/expertise/design/patterns/navigation.md +800 -0
- package/expertise/design/patterns/notifications.md +705 -0
- package/expertise/design/patterns/onboarding.md +700 -0
- package/expertise/design/patterns/search-and-filter.md +601 -0
- package/expertise/design/patterns/settings-and-preferences.md +768 -0
- package/expertise/design/patterns/social-and-community.md +748 -0
- package/expertise/design/platforms/desktop-native.md +612 -0
- package/expertise/design/platforms/index.md +25 -0
- package/expertise/design/platforms/mobile-android.md +825 -0
- package/expertise/design/platforms/mobile-cross-platform.md +983 -0
- package/expertise/design/platforms/mobile-ios.md +699 -0
- package/expertise/design/platforms/tablet.md +794 -0
- package/expertise/design/platforms/web-dashboard.md +790 -0
- package/expertise/design/platforms/web-responsive.md +550 -0
- package/expertise/design/psychology/behavioral-nudges.md +449 -0
- package/expertise/design/psychology/cognitive-load.md +1191 -0
- package/expertise/design/psychology/error-psychology.md +778 -0
- package/expertise/design/psychology/index.md +22 -0
- package/expertise/design/psychology/persuasive-design.md +736 -0
- package/expertise/design/psychology/user-mental-models.md +623 -0
- package/expertise/design/tooling/open-pencil.md +266 -0
- package/expertise/frontend/angular.md +1073 -0
- package/expertise/frontend/desktop-electron.md +546 -0
- package/expertise/frontend/flutter.md +782 -0
- package/expertise/frontend/index.md +27 -0
- package/expertise/frontend/native-android.md +409 -0
- package/expertise/frontend/native-ios.md +490 -0
- package/expertise/frontend/react-native.md +1160 -0
- package/expertise/frontend/react.md +808 -0
- package/expertise/frontend/vue.md +1089 -0
- package/expertise/humanize/domain-rules-code.md +79 -0
- package/expertise/humanize/domain-rules-content.md +67 -0
- package/expertise/humanize/domain-rules-technical-docs.md +56 -0
- package/expertise/humanize/index.md +35 -0
- package/expertise/humanize/self-audit-checklist.md +87 -0
- package/expertise/humanize/sentence-patterns.md +218 -0
- package/expertise/humanize/vocabulary-blacklist.md +105 -0
- package/expertise/i18n/PROGRESS.md +65 -0
- package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
- package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
- package/expertise/i18n/advanced/complex-scripts.md +30 -0
- package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
- package/expertise/i18n/advanced/testing-i18n.md +28 -0
- package/expertise/i18n/content/content-adaptation.md +23 -0
- package/expertise/i18n/content/locale-specific-formatting.md +23 -0
- package/expertise/i18n/content/machine-translation-integration.md +28 -0
- package/expertise/i18n/content/translation-management.md +29 -0
- package/expertise/i18n/foundations/date-time-calendars.md +67 -0
- package/expertise/i18n/foundations/i18n-architecture.md +272 -0
- package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
- package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
- package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
- package/expertise/i18n/foundations/string-externalization.md +236 -0
- package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
- package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
- package/expertise/i18n/index.md +38 -0
- package/expertise/i18n/platform/backend-i18n.md +31 -0
- package/expertise/i18n/platform/flutter-i18n.md +148 -0
- package/expertise/i18n/platform/native-android-i18n.md +36 -0
- package/expertise/i18n/platform/native-ios-i18n.md +36 -0
- package/expertise/i18n/platform/react-i18n.md +103 -0
- package/expertise/i18n/platform/web-css-i18n.md +81 -0
- package/expertise/i18n/rtl/arabic-specific.md +175 -0
- package/expertise/i18n/rtl/hebrew-specific.md +149 -0
- package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
- package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
- package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
- package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
- package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
- package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
- package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
- package/expertise/i18n/rtl/rtl-typography.md +160 -0
- package/expertise/index.md +113 -0
- package/expertise/index.yaml +216 -0
- package/expertise/infrastructure/cloud-aws.md +597 -0
- package/expertise/infrastructure/cloud-gcp.md +599 -0
- package/expertise/infrastructure/cybersecurity.md +816 -0
- package/expertise/infrastructure/database-mongodb.md +447 -0
- package/expertise/infrastructure/database-postgres.md +400 -0
- package/expertise/infrastructure/devops-cicd.md +787 -0
- package/expertise/infrastructure/index.md +27 -0
- package/expertise/performance/PROGRESS.md +50 -0
- package/expertise/performance/backend/api-latency.md +1204 -0
- package/expertise/performance/backend/background-jobs.md +506 -0
- package/expertise/performance/backend/connection-pooling.md +1209 -0
- package/expertise/performance/backend/database-query-optimization.md +515 -0
- package/expertise/performance/backend/index.md +23 -0
- package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
- package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
- package/expertise/performance/foundations/caching-strategies.md +489 -0
- package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
- package/expertise/performance/foundations/index.md +24 -0
- package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
- package/expertise/performance/foundations/memory-management.md +964 -0
- package/expertise/performance/foundations/performance-budgets.md +1314 -0
- package/expertise/performance/index.md +31 -0
- package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
- package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
- package/expertise/performance/infrastructure/index.md +22 -0
- package/expertise/performance/infrastructure/load-balancing.md +1081 -0
- package/expertise/performance/infrastructure/observability.md +1079 -0
- package/expertise/performance/mobile/index.md +23 -0
- package/expertise/performance/mobile/mobile-animations.md +544 -0
- package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
- package/expertise/performance/mobile/mobile-network.md +452 -0
- package/expertise/performance/mobile/mobile-rendering.md +599 -0
- package/expertise/performance/mobile/mobile-startup-time.md +505 -0
- package/expertise/performance/platform-specific/flutter-performance.md +647 -0
- package/expertise/performance/platform-specific/index.md +22 -0
- package/expertise/performance/platform-specific/node-performance.md +1307 -0
- package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
- package/expertise/performance/platform-specific/react-performance.md +1403 -0
- package/expertise/performance/web/bundle-optimization.md +1239 -0
- package/expertise/performance/web/image-and-media.md +636 -0
- package/expertise/performance/web/index.md +24 -0
- package/expertise/performance/web/network-optimization.md +1133 -0
- package/expertise/performance/web/rendering-performance.md +1098 -0
- package/expertise/performance/web/ssr-and-hydration.md +918 -0
- package/expertise/performance/web/web-vitals.md +1374 -0
- package/expertise/quality/accessibility.md +985 -0
- package/expertise/quality/evidence-based-verification.md +499 -0
- package/expertise/quality/index.md +24 -0
- package/expertise/quality/ml-model-audit.md +614 -0
- package/expertise/quality/performance.md +600 -0
- package/expertise/quality/testing-api.md +891 -0
- package/expertise/quality/testing-mobile.md +496 -0
- package/expertise/quality/testing-web.md +849 -0
- package/expertise/security/PROGRESS.md +54 -0
- package/expertise/security/agentic-identity.md +540 -0
- package/expertise/security/compliance-frameworks.md +601 -0
- package/expertise/security/data/data-encryption.md +364 -0
- package/expertise/security/data/data-privacy-gdpr.md +692 -0
- package/expertise/security/data/database-security.md +1171 -0
- package/expertise/security/data/index.md +22 -0
- package/expertise/security/data/pii-handling.md +531 -0
- package/expertise/security/foundations/authentication.md +1041 -0
- package/expertise/security/foundations/authorization.md +603 -0
- package/expertise/security/foundations/cryptography.md +1001 -0
- package/expertise/security/foundations/index.md +25 -0
- package/expertise/security/foundations/owasp-top-10.md +1354 -0
- package/expertise/security/foundations/secrets-management.md +1217 -0
- package/expertise/security/foundations/secure-sdlc.md +700 -0
- package/expertise/security/foundations/supply-chain-security.md +698 -0
- package/expertise/security/index.md +31 -0
- package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
- package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
- package/expertise/security/infrastructure/container-security.md +721 -0
- package/expertise/security/infrastructure/incident-response.md +1295 -0
- package/expertise/security/infrastructure/index.md +24 -0
- package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
- package/expertise/security/infrastructure/network-security.md +1337 -0
- package/expertise/security/mobile/index.md +23 -0
- package/expertise/security/mobile/mobile-android-security.md +1218 -0
- package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
- package/expertise/security/mobile/mobile-data-storage.md +1265 -0
- package/expertise/security/mobile/mobile-ios-security.md +1401 -0
- package/expertise/security/mobile/mobile-network-security.md +1520 -0
- package/expertise/security/smart-contract-security.md +594 -0
- package/expertise/security/testing/index.md +22 -0
- package/expertise/security/testing/penetration-testing.md +1258 -0
- package/expertise/security/testing/security-code-review.md +1765 -0
- package/expertise/security/testing/threat-modeling.md +1074 -0
- package/expertise/security/testing/vulnerability-scanning.md +1062 -0
- package/expertise/security/web/api-security.md +586 -0
- package/expertise/security/web/cors-and-headers.md +433 -0
- package/expertise/security/web/csrf.md +562 -0
- package/expertise/security/web/file-upload.md +1477 -0
- package/expertise/security/web/index.md +25 -0
- package/expertise/security/web/injection.md +1375 -0
- package/expertise/security/web/session-management.md +1101 -0
- package/expertise/security/web/xss.md +1158 -0
- package/exports/README.md +17 -0
- package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
- package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
- package/exports/hosts/claude/.claude/agents/designer.md +55 -0
- package/exports/hosts/claude/.claude/agents/executor.md +55 -0
- package/exports/hosts/claude/.claude/agents/learner.md +51 -0
- package/exports/hosts/claude/.claude/agents/planner.md +53 -0
- package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
- package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
- package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
- package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
- package/exports/hosts/claude/.claude/commands/author.md +42 -0
- package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
- package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
- package/exports/hosts/claude/.claude/commands/design.md +44 -0
- package/exports/hosts/claude/.claude/commands/discover.md +37 -0
- package/exports/hosts/claude/.claude/commands/execute.md +48 -0
- package/exports/hosts/claude/.claude/commands/learn.md +38 -0
- package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
- package/exports/hosts/claude/.claude/commands/plan.md +39 -0
- package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
- package/exports/hosts/claude/.claude/commands/review.md +40 -0
- package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
- package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
- package/exports/hosts/claude/.claude/commands/specify.md +38 -0
- package/exports/hosts/claude/.claude/commands/verify.md +37 -0
- package/exports/hosts/claude/.claude/settings.json +34 -0
- package/exports/hosts/claude/CLAUDE.md +19 -0
- package/exports/hosts/claude/export.manifest.json +38 -0
- package/exports/hosts/claude/host-package.json +67 -0
- package/exports/hosts/codex/AGENTS.md +19 -0
- package/exports/hosts/codex/export.manifest.json +38 -0
- package/exports/hosts/codex/host-package.json +41 -0
- package/exports/hosts/cursor/.cursor/hooks.json +16 -0
- package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
- package/exports/hosts/cursor/export.manifest.json +38 -0
- package/exports/hosts/cursor/host-package.json +42 -0
- package/exports/hosts/gemini/GEMINI.md +19 -0
- package/exports/hosts/gemini/export.manifest.json +38 -0
- package/exports/hosts/gemini/host-package.json +41 -0
- package/hooks/README.md +18 -0
- package/hooks/definitions/loop_cap_guard.yaml +21 -0
- package/hooks/definitions/post_tool_capture.yaml +24 -0
- package/hooks/definitions/pre_compact_summary.yaml +19 -0
- package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
- package/hooks/definitions/protected_path_write_guard.yaml +19 -0
- package/hooks/definitions/session_start.yaml +19 -0
- package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
- package/hooks/loop-cap-guard +17 -0
- package/hooks/post-tool-lint +36 -0
- package/hooks/protected-path-write-guard +17 -0
- package/hooks/session-start +41 -0
- package/llms-full.txt +2355 -0
- package/llms.txt +43 -0
- package/package.json +79 -0
- package/roles/README.md +20 -0
- package/roles/clarifier.md +42 -0
- package/roles/content-author.md +63 -0
- package/roles/designer.md +55 -0
- package/roles/executor.md +55 -0
- package/roles/learner.md +51 -0
- package/roles/planner.md +53 -0
- package/roles/researcher.md +43 -0
- package/roles/reviewer.md +54 -0
- package/roles/specifier.md +47 -0
- package/roles/verifier.md +71 -0
- package/schemas/README.md +24 -0
- package/schemas/accepted-learning.schema.json +20 -0
- package/schemas/author-artifact.schema.json +156 -0
- package/schemas/clarification.schema.json +19 -0
- package/schemas/design-artifact.schema.json +80 -0
- package/schemas/docs-claim.schema.json +18 -0
- package/schemas/export-manifest.schema.json +20 -0
- package/schemas/hook.schema.json +67 -0
- package/schemas/host-export-package.schema.json +18 -0
- package/schemas/implementation-plan.schema.json +19 -0
- package/schemas/proposed-learning.schema.json +19 -0
- package/schemas/research.schema.json +18 -0
- package/schemas/review.schema.json +29 -0
- package/schemas/run-manifest.schema.json +18 -0
- package/schemas/spec-challenge.schema.json +18 -0
- package/schemas/spec.schema.json +20 -0
- package/schemas/usage.schema.json +102 -0
- package/schemas/verification-proof.schema.json +29 -0
- package/schemas/wazir-manifest.schema.json +173 -0
- package/skills/README.md +40 -0
- package/skills/brainstorming/SKILL.md +77 -0
- package/skills/debugging/SKILL.md +50 -0
- package/skills/design/SKILL.md +61 -0
- package/skills/dispatching-parallel-agents/SKILL.md +128 -0
- package/skills/executing-plans/SKILL.md +70 -0
- package/skills/finishing-a-development-branch/SKILL.md +169 -0
- package/skills/humanize/SKILL.md +123 -0
- package/skills/init-pipeline/SKILL.md +124 -0
- package/skills/prepare-next/SKILL.md +20 -0
- package/skills/receiving-code-review/SKILL.md +123 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +108 -0
- package/skills/run-audit/SKILL.md +197 -0
- package/skills/scan-project/SKILL.md +41 -0
- package/skills/self-audit/SKILL.md +153 -0
- package/skills/subagent-driven-development/SKILL.md +154 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/subagent-driven-development/implementer-prompt.md +102 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/tdd/SKILL.md +23 -0
- package/skills/using-git-worktrees/SKILL.md +163 -0
- package/skills/using-skills/SKILL.md +95 -0
- package/skills/verification/SKILL.md +22 -0
- package/skills/wazir/SKILL.md +463 -0
- package/skills/writing-plans/SKILL.md +30 -0
- package/skills/writing-skills/SKILL.md +157 -0
- package/skills/writing-skills/anthropic-best-practices.md +122 -0
- package/skills/writing-skills/persuasion-principles.md +50 -0
- package/templates/README.md +20 -0
- package/templates/artifacts/README.md +10 -0
- package/templates/artifacts/accepted-learning.md +19 -0
- package/templates/artifacts/accepted-learning.template.json +12 -0
- package/templates/artifacts/author.md +74 -0
- package/templates/artifacts/author.template.json +19 -0
- package/templates/artifacts/clarification.md +21 -0
- package/templates/artifacts/clarification.template.json +12 -0
- package/templates/artifacts/execute-notes.md +19 -0
- package/templates/artifacts/implementation-plan.md +21 -0
- package/templates/artifacts/implementation-plan.template.json +11 -0
- package/templates/artifacts/learning-proposal.md +19 -0
- package/templates/artifacts/next-run-handoff.md +21 -0
- package/templates/artifacts/plan-review.md +19 -0
- package/templates/artifacts/proposed-learning.template.json +12 -0
- package/templates/artifacts/research.md +21 -0
- package/templates/artifacts/research.template.json +12 -0
- package/templates/artifacts/review-findings.md +19 -0
- package/templates/artifacts/review.template.json +11 -0
- package/templates/artifacts/run-manifest.template.json +8 -0
- package/templates/artifacts/spec-challenge.md +19 -0
- package/templates/artifacts/spec-challenge.template.json +11 -0
- package/templates/artifacts/spec.md +21 -0
- package/templates/artifacts/spec.template.json +12 -0
- package/templates/artifacts/verification-proof.md +19 -0
- package/templates/artifacts/verification-proof.template.json +11 -0
- package/templates/examples/accepted-learning.example.json +14 -0
- package/templates/examples/author.example.json +152 -0
- package/templates/examples/clarification.example.json +15 -0
- package/templates/examples/docs-claim.example.json +8 -0
- package/templates/examples/export-manifest.example.json +7 -0
- package/templates/examples/host-export-package.example.json +11 -0
- package/templates/examples/implementation-plan.example.json +17 -0
- package/templates/examples/proposed-learning.example.json +13 -0
- package/templates/examples/research.example.json +15 -0
- package/templates/examples/research.example.md +6 -0
- package/templates/examples/review.example.json +17 -0
- package/templates/examples/run-manifest.example.json +9 -0
- package/templates/examples/spec-challenge.example.json +14 -0
- package/templates/examples/spec.example.json +21 -0
- package/templates/examples/verification-proof.example.json +21 -0
- package/templates/examples/wazir-manifest.example.yaml +65 -0
- package/templates/task-definition-schema.md +99 -0
- package/tooling/README.md +20 -0
- package/tooling/src/adapters/context-mode.js +50 -0
- package/tooling/src/capture/command.js +376 -0
- package/tooling/src/capture/store.js +99 -0
- package/tooling/src/capture/usage.js +270 -0
- package/tooling/src/checks/branches.js +50 -0
- package/tooling/src/checks/brand-truth.js +110 -0
- package/tooling/src/checks/changelog.js +231 -0
- package/tooling/src/checks/command-registry.js +36 -0
- package/tooling/src/checks/commits.js +102 -0
- package/tooling/src/checks/docs-drift.js +103 -0
- package/tooling/src/checks/docs-truth.js +201 -0
- package/tooling/src/checks/runtime-surface.js +156 -0
- package/tooling/src/cli.js +116 -0
- package/tooling/src/command-options.js +56 -0
- package/tooling/src/commands/validate.js +320 -0
- package/tooling/src/doctor/command.js +91 -0
- package/tooling/src/export/command.js +77 -0
- package/tooling/src/export/compiler.js +498 -0
- package/tooling/src/guards/loop-cap-guard.js +52 -0
- package/tooling/src/guards/protected-path-write-guard.js +67 -0
- package/tooling/src/index/command.js +152 -0
- package/tooling/src/index/storage.js +1061 -0
- package/tooling/src/index/summarizers.js +261 -0
- package/tooling/src/loaders.js +18 -0
- package/tooling/src/project-root.js +22 -0
- package/tooling/src/recall/command.js +225 -0
- package/tooling/src/schema-validator.js +30 -0
- package/tooling/src/state-root.js +40 -0
- package/tooling/src/status/command.js +71 -0
- package/wazir.manifest.yaml +135 -0
- package/workflows/README.md +19 -0
- package/workflows/author.md +42 -0
- package/workflows/clarify.md +38 -0
- package/workflows/design-review.md +46 -0
- package/workflows/design.md +44 -0
- package/workflows/discover.md +37 -0
- package/workflows/execute.md +48 -0
- package/workflows/learn.md +38 -0
- package/workflows/plan-review.md +42 -0
- package/workflows/plan.md +39 -0
- package/workflows/prepare-next.md +37 -0
- package/workflows/review.md +40 -0
- package/workflows/run-audit.md +41 -0
- package/workflows/spec-challenge.md +41 -0
- package/workflows/specify.md +38 -0
- package/workflows/verify.md +37 -0
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
# Onboarding Patterns
|
|
2
|
+
|
|
3
|
+
> **Module Type:** Pattern
|
|
4
|
+
> **Domain:** UX Design / User Onboarding
|
|
5
|
+
> **Last Updated:** 2026-03-07
|
|
6
|
+
> **Confidence:** High -- based on NNG research, Appcues data, UX Collective analysis, and cross-industry teardowns
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Quick Reference Checklist
|
|
11
|
+
|
|
12
|
+
Before shipping any onboarding flow, verify against this list:
|
|
13
|
+
|
|
14
|
+
- [ ] Users reach their first value moment within 60 seconds
|
|
15
|
+
- [ ] Account creation is deferred until after demonstrating value
|
|
16
|
+
- [ ] Every permission request includes a clear, benefit-framed rationale
|
|
17
|
+
- [ ] A skip option is visible on every non-essential screen
|
|
18
|
+
- [ ] Progress indication is present throughout multi-step flows
|
|
19
|
+
- [ ] The flow adapts based on user role, intent, or prior context
|
|
20
|
+
- [ ] Empty states guide users toward their first meaningful action
|
|
21
|
+
- [ ] Contextual help is available at the point of need, not upfront
|
|
22
|
+
- [ ] Celebration micro-interactions reinforce completion of key milestones
|
|
23
|
+
- [ ] The entire flow is keyboard-navigable and screen-reader accessible
|
|
24
|
+
- [ ] Reduced-motion alternatives exist for all animations
|
|
25
|
+
- [ ] Returning users are not forced to repeat completed onboarding
|
|
26
|
+
- [ ] Re-onboarding exists for major feature releases
|
|
27
|
+
- [ ] The flow has been tested on iOS, Android, and web with platform-appropriate patterns
|
|
28
|
+
- [ ] Abandonment recovery paths exist (deep links, email nudges, resume state)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. Pattern Anatomy
|
|
33
|
+
|
|
34
|
+
Onboarding is the bridge between a user's first encounter with a product and their
|
|
35
|
+
realization of its core value. It is not a single pattern but a family of related
|
|
36
|
+
patterns, each suited to different contexts, complexity levels, and user needs.
|
|
37
|
+
|
|
38
|
+
### 1.1 App Intro / Welcome Screens
|
|
39
|
+
|
|
40
|
+
**What it is:** 2-4 screens on first launch communicating the app's value proposition
|
|
41
|
+
via illustration + headline + subtitle.
|
|
42
|
+
|
|
43
|
+
**When to use:** App purpose is not obvious from name/icon; brand storytelling is
|
|
44
|
+
central (e.g., Headspace); expectations need setting before interaction.
|
|
45
|
+
|
|
46
|
+
**When to avoid:** App function is self-evident (calculator, weather); users arrive
|
|
47
|
+
with strong intent; value already communicated via app store screenshots.
|
|
48
|
+
|
|
49
|
+
**Guidance:** Limit to 3 screens max -- NNG research shows tutorials are "quickly
|
|
50
|
+
forgotten." Focus on benefits, not features. Always include skip. Appcues found
|
|
51
|
+
49% of trial users want to explore on their own. Use pagination dots for scope.
|
|
52
|
+
|
|
53
|
+
### 1.2 Feature Tours / Product Tours
|
|
54
|
+
|
|
55
|
+
**What it is:** Guided walkthrough highlighting specific UI elements via tooltips,
|
|
56
|
+
coach marks, or spotlight overlays anchored to interface components.
|
|
57
|
+
|
|
58
|
+
**When to use:** Non-obvious interaction patterns; key features hidden behind menus
|
|
59
|
+
or gestures; collaborative products where users need workflow understanding.
|
|
60
|
+
|
|
61
|
+
**When to avoid:** UI follows platform conventions; better UI design could eliminate
|
|
62
|
+
the need (the best onboarding is no onboarding); returning users.
|
|
63
|
+
|
|
64
|
+
**Guidance:** Anchor to actual UI elements, not abstract illustrations. Limit to
|
|
65
|
+
3-5 steps -- longer tours see exponential drop-off. Make tours interactive: require
|
|
66
|
+
the user to perform the action, not just read. Offer "remind me later" alongside skip.
|
|
67
|
+
|
|
68
|
+
### 1.3 Progressive Disclosure
|
|
69
|
+
|
|
70
|
+
**What it is:** Revealing features incrementally as the user advances, rather than
|
|
71
|
+
presenting everything upfront.
|
|
72
|
+
|
|
73
|
+
**When to use:** High-complexity products (design tools, project management, IDEs);
|
|
74
|
+
different user segments need different feature sets; overwhelming learning curve.
|
|
75
|
+
|
|
76
|
+
**When to avoid:** Power users needing immediate advanced access; simple products
|
|
77
|
+
where progressive disclosure adds unnecessary friction.
|
|
78
|
+
|
|
79
|
+
**Guidance:** Tie feature reveals to user actions, not arbitrary timelines. Use
|
|
80
|
+
behavioral triggers: show the export tutorial after the first document creation,
|
|
81
|
+
not on day 3. Jakob Nielsen introduced progressive disclosure in 1995 to reduce
|
|
82
|
+
errors in complex applications. Notion exemplifies this: basic blocks first,
|
|
83
|
+
databases revealed as users build more complex pages.
|
|
84
|
+
|
|
85
|
+
### 1.4 Contextual Tooltips
|
|
86
|
+
|
|
87
|
+
**What it is:** Targeted help messages appearing at the moment a user encounters
|
|
88
|
+
a feature or interaction point for the first time.
|
|
89
|
+
|
|
90
|
+
**When to use:** Non-standard UI patterns needing inline explanation; just-in-time
|
|
91
|
+
help without workflow interruption; organically discovered features.
|
|
92
|
+
|
|
93
|
+
**When to avoid:** Tooltip would obscure the element; information exceeds 1-2
|
|
94
|
+
sentences; multiple tooltips would appear simultaneously.
|
|
95
|
+
|
|
96
|
+
**Guidance:** NNG distinguishes "push" (proactive) from "pull" (user-triggered)
|
|
97
|
+
contextual help. Prefer pull patterns for non-critical info. Position consistently,
|
|
98
|
+
never occluding the target. Dismiss on interaction with the target element. Track
|
|
99
|
+
shown tooltips and never re-show dismissed ones.
|
|
100
|
+
|
|
101
|
+
### 1.5 Interactive Tutorials
|
|
102
|
+
|
|
103
|
+
**What it is:** Learn-by-doing experiences where users complete real tasks within a
|
|
104
|
+
guided sandbox or with guardrails on the live product.
|
|
105
|
+
|
|
106
|
+
**When to use:** Procedural knowledge required (design tools, code editors); non-
|
|
107
|
+
technical users learning technical workflows; multi-step "aha moment."
|
|
108
|
+
|
|
109
|
+
**When to avoid:** Users experienced with the category; tutorial cannot use real
|
|
110
|
+
data; time-to-value must be under 30 seconds.
|
|
111
|
+
|
|
112
|
+
**Guidance:** Duolingo is the gold standard: users complete a real translation
|
|
113
|
+
exercise before creating an account. Use user's actual data when possible. Allow
|
|
114
|
+
exit and resume. Celebrate completion with clear feedback.
|
|
115
|
+
|
|
116
|
+
### 1.6 Empty State Onboarding
|
|
117
|
+
|
|
118
|
+
**What it is:** Using blank screens as onboarding surfaces guiding users toward
|
|
119
|
+
their first meaningful action.
|
|
120
|
+
|
|
121
|
+
**When to use:** Value only visible after user-generated content; new accounts
|
|
122
|
+
start blank (project management, CRM); "cold start" anxiety reduction.
|
|
123
|
+
|
|
124
|
+
**Guidance:** Replace every empty state with a clear CTA: "Create your first
|
|
125
|
+
project" not "No projects yet." Include cloneable templates. Show what the
|
|
126
|
+
populated state looks like through previews. Notion and Linear both use this
|
|
127
|
+
effectively with CTAs, templates, and success previews.
|
|
128
|
+
|
|
129
|
+
### 1.7 Checklist-Driven Onboarding
|
|
130
|
+
|
|
131
|
+
**What it is:** A visible task list guiding users through setup, tracking completion
|
|
132
|
+
and providing progress feedback.
|
|
133
|
+
|
|
134
|
+
**When to use:** Multi-step setup (profile, integrations, team, preferences); users
|
|
135
|
+
benefit from knowing full scope upfront; gamification fits the tone.
|
|
136
|
+
|
|
137
|
+
**When to avoid:** More than 7 items (overwhelm); strict-order steps (use wizard);
|
|
138
|
+
casual products where checklists feel formal.
|
|
139
|
+
|
|
140
|
+
**Guidance:** Show progress persistently. Pre-check auto-completed steps. Allow
|
|
141
|
+
any-order completion. Appcues research shows checklists exploit the Zeigarnik
|
|
142
|
+
effect: incomplete tasks create psychological tension motivating completion.
|
|
143
|
+
|
|
144
|
+
### 1.8 Pattern Selection Matrix
|
|
145
|
+
|
|
146
|
+
| Pattern | Best For | Complexity | User Effort | Time to Value |
|
|
147
|
+
|---------|----------|------------|-------------|---------------|
|
|
148
|
+
| Welcome Screens | Brand-led products | Low | Passive | Slow |
|
|
149
|
+
| Feature Tours | Feature-rich UIs | Medium | Passive | Medium |
|
|
150
|
+
| Progressive Disclosure | Complex tools | High | Active | Gradual |
|
|
151
|
+
| Contextual Tooltips | Standard UIs with nuances | Low | Active | Fast |
|
|
152
|
+
| Interactive Tutorials | Skill-based products | High | Active | Medium |
|
|
153
|
+
| Empty States | Content-creation tools | Low | Active | Fast |
|
|
154
|
+
| Checklists | Multi-step setup products | Medium | Active | Medium |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 2. Best-in-Class Examples
|
|
159
|
+
|
|
160
|
+
### 2.1 Duolingo -- Value Before Commitment
|
|
161
|
+
|
|
162
|
+
**Pattern:** Interactive tutorial + deferred signup + personalization
|
|
163
|
+
|
|
164
|
+
Users select a language and complete a real translation exercise before account
|
|
165
|
+
creation. A 7-step personalization flow segments by proficiency, goals, and daily
|
|
166
|
+
time. Progress bars are omnipresent. Gamification is woven into onboarding itself:
|
|
167
|
+
XP for the first exercise, streak counter initialized. Sign-up is framed as "save
|
|
168
|
+
your progress" rather than "create an account."
|
|
169
|
+
|
|
170
|
+
**Key metric:** "First lesson completed" activation event.
|
|
171
|
+
|
|
172
|
+
### 2.2 Notion -- Role-Based Personalization
|
|
173
|
+
|
|
174
|
+
**Pattern:** Personalization survey + empty state + template suggestions
|
|
175
|
+
|
|
176
|
+
Asks user role (student, designer, engineer, manager) and team size upfront,
|
|
177
|
+
driving template and feature selection. Minimal visual distraction with one input
|
|
178
|
+
per step. Empty states throughout serve as ongoing onboarding surfaces. Progressive
|
|
179
|
+
disclosure: basic blocks first, databases/relations introduced as usage deepens.
|
|
180
|
+
|
|
181
|
+
**Key metric:** "First page created with real content."
|
|
182
|
+
|
|
183
|
+
### 2.3 Slack -- Collaborative Activation
|
|
184
|
+
|
|
185
|
+
**Pattern:** Workspace setup checklist + interactive tutorial + team invite
|
|
186
|
+
|
|
187
|
+
Onboarding is framed as workspace creation, not personal setup. Slackbot serves
|
|
188
|
+
as an interactive guide through actual messaging. Conversational, emoji-rich
|
|
189
|
+
microcopy reduces anxiety. Team invite positioned early: "Slack works best with
|
|
190
|
+
your team." Invited (Nth) users get a distinct streamlined flow skipping workspace
|
|
191
|
+
setup, focusing on preferences and channel discovery.
|
|
192
|
+
|
|
193
|
+
**Key metric:** "First real message sent to a teammate."
|
|
194
|
+
|
|
195
|
+
### 2.4 Figma -- Action-First Design
|
|
196
|
+
|
|
197
|
+
**Pattern:** Minimal setup + collaborative prompt + learning by doing
|
|
198
|
+
|
|
199
|
+
Users reach the editor within 3 clicks -- fastest time-to-canvas of any design
|
|
200
|
+
tool. Onboarding happens inside the actual product with contextual hints as tools
|
|
201
|
+
are discovered. Collaboration introduced immediately. Community templates serve as
|
|
202
|
+
both onboarding and inspiration.
|
|
203
|
+
|
|
204
|
+
**Key metric:** "First shape drawn on canvas."
|
|
205
|
+
|
|
206
|
+
### 2.5 Linear -- Focused Elegance
|
|
207
|
+
|
|
208
|
+
**Pattern:** Single-input-per-step wizard + workspace setup + feature hints
|
|
209
|
+
|
|
210
|
+
Each screen contains exactly one input or decision. Dark, polished UI matches the
|
|
211
|
+
product perfectly -- no jarring transition. Keyboard shortcuts subtly introduced
|
|
212
|
+
alongside mouse interactions. The killer feature (cycles/sprints) is hinted at
|
|
213
|
+
during setup, creating anticipation.
|
|
214
|
+
|
|
215
|
+
**Key metric:** "First issue created in a project."
|
|
216
|
+
|
|
217
|
+
### 2.6 Headspace -- Emotional Onboarding
|
|
218
|
+
|
|
219
|
+
**Pattern:** Welcome animation + personalization + immediate guided experience
|
|
220
|
+
|
|
221
|
+
A calming breathing exercise begins within seconds, delivering core value before
|
|
222
|
+
any setup. Personalization frames questions as caring ("What brings you to
|
|
223
|
+
Headspace?"). Notification permission tied to benefit. Originally had 38% drop-off;
|
|
224
|
+
reduced by making intro screens easily exitable.
|
|
225
|
+
|
|
226
|
+
**Key metric:** "First meditation completed" (week-two users 5x more likely to convert).
|
|
227
|
+
|
|
228
|
+
### 2.7 TikTok -- Zero-Friction Content Consumption
|
|
229
|
+
|
|
230
|
+
**Pattern:** Content-first + deferred everything + behavioral learning
|
|
231
|
+
|
|
232
|
+
The most radical approach: no traditional onboarding. Users see full-screen video
|
|
233
|
+
immediately. No profile upload, no required interest selection, no follows needed.
|
|
234
|
+
The algorithm learns preferences through watch behavior. Contextual education
|
|
235
|
+
embedded in consumption: "double-tap to like" appears subtly over playing video.
|
|
236
|
+
|
|
237
|
+
**Key metric:** "First 5 videos watched to completion."
|
|
238
|
+
|
|
239
|
+
### 2.8 Comparative Analysis
|
|
240
|
+
|
|
241
|
+
| App | Steps to Value | Signup Required? | Personalization | Primary Pattern |
|
|
242
|
+
|-----|---------------|-----------------|-----------------|-----------------|
|
|
243
|
+
| Duolingo | 1 exercise | After value | Deep (7 steps) | Interactive tutorial |
|
|
244
|
+
| Notion | Template clone | Yes, upfront | Role-based | Empty state |
|
|
245
|
+
| Slack | Send message | Yes (workspace) | Team-based | Checklist + bot |
|
|
246
|
+
| Figma | Draw on canvas | Yes, minimal | Light | Action-first |
|
|
247
|
+
| Linear | Create issue | Yes (workspace) | Workspace config | Wizard |
|
|
248
|
+
| Headspace | Breathing exercise | After value | Goal-based | Emotional + guided |
|
|
249
|
+
| TikTok | 0 (immediate) | No | Behavioral | Content-first |
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 3. User Flow Mapping
|
|
254
|
+
|
|
255
|
+
### 3.1 Primary Flow: First Launch to First Value
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
App Launch --> Splash (0.5-2s) --> Value Proposition (1-3 screens, skippable)
|
|
259
|
+
--> Permission Requests (only what is needed NOW)
|
|
260
|
+
--> Account Creation (defer if possible; social auth, skip/guest)
|
|
261
|
+
--> Personalization (2-5 questions, each visibly changes experience)
|
|
262
|
+
--> FIRST VALUE MOMENT (the goal)
|
|
263
|
+
--> Celebration + Next Steps --> Ongoing Progressive Onboarding
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 3.2 Permission Request Timing
|
|
267
|
+
|
|
268
|
+
Request permissions with context, at the moment of relevance:
|
|
269
|
+
- **Camera:** when user taps "Take Photo"
|
|
270
|
+
- **Location:** when user opens map or taps "Find nearby"
|
|
271
|
+
- **Notifications:** after value experienced, framed as benefit
|
|
272
|
+
- **Contacts:** when user explicitly initiates "invite friends"
|
|
273
|
+
|
|
274
|
+
**Pre-permission priming pattern:** Show a custom dialog explaining WHY before the
|
|
275
|
+
system dialog. "To send meditation reminders at your preferred time, we need
|
|
276
|
+
notification access." Offer [Allow] and [Not Now]. If denied, explain how to
|
|
277
|
+
enable in Settings. Never re-prompt aggressively.
|
|
278
|
+
|
|
279
|
+
### 3.3 Skip and Resume Architecture
|
|
280
|
+
|
|
281
|
+
**Skip rules:** Every non-essential step needs a visible skip mechanism.
|
|
282
|
+
- Welcome screens: "Skip" to product
|
|
283
|
+
- Personalization: "Use defaults"
|
|
284
|
+
- Tutorial: "I already know this"
|
|
285
|
+
- Team invite: "I'll do this later" (with reminder)
|
|
286
|
+
|
|
287
|
+
**Resume after abandonment:**
|
|
288
|
+
- Persist state server-side, not just locally
|
|
289
|
+
- On next launch: "Pick up where you left off?" -- never restart from beginning
|
|
290
|
+
- If 7+ days passed, offer fresh start alongside resume
|
|
291
|
+
- Email/push nudges at 24h, 72h, 7d with deep links to abandonment point
|
|
292
|
+
|
|
293
|
+
### 3.4 Edge Cases
|
|
294
|
+
|
|
295
|
+
**Returning users after long absence:**
|
|
296
|
+
Show "Welcome back -- here's what's new" with 2-3 changelog highlights. Restore
|
|
297
|
+
previous context (last document, last search). Never re-show original onboarding.
|
|
298
|
+
|
|
299
|
+
**Account migration:**
|
|
300
|
+
Pre-migration email explaining changes. Migration wizard mapping old concepts to
|
|
301
|
+
new. Preserve all data/settings. Provide accessible "what changed" reference.
|
|
302
|
+
Allow temporary old-version access during transition.
|
|
303
|
+
|
|
304
|
+
**Team invites (Nth user onboarding):**
|
|
305
|
+
Skip product value props -- teammates already explained. Focus on workspace context.
|
|
306
|
+
Pre-populate team info and show who invited them. Tailored checklist: complete
|
|
307
|
+
profile, join channels/projects, first action. Appcues shows Nth-user flows should
|
|
308
|
+
have 40-60% fewer steps than first-user onboarding.
|
|
309
|
+
|
|
310
|
+
**Re-onboarding for new features:**
|
|
311
|
+
Use in-app modals/banners, not full flow restarts. Target by segment (role, plan,
|
|
312
|
+
usage). Provide "what's new" section on demand. Contextual tooltips on new UI.
|
|
313
|
+
Optional interactive walkthrough. Respect "don't show again" persistently.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 4. Micro-Interactions
|
|
318
|
+
|
|
319
|
+
Micro-interactions transform onboarding from a chore into an experience. Each has
|
|
320
|
+
four components: trigger, rule, feedback, and loop/mode.
|
|
321
|
+
|
|
322
|
+
### 4.1 Page Transitions
|
|
323
|
+
|
|
324
|
+
- Horizontal slide for linear sequences (mental model of "moving forward")
|
|
325
|
+
- Crossfade for non-sequential transitions (skip, settings)
|
|
326
|
+
- Duration: 250-350ms. Use `cubic-bezier(0.4, 0.0, 0.2, 1)` (Material standard)
|
|
327
|
+
- Shared-element transitions when elements persist across screens (progress bar)
|
|
328
|
+
- Avoid zoom/3D transitions -- they distract from content
|
|
329
|
+
|
|
330
|
+
### 4.2 Progress Indicators
|
|
331
|
+
|
|
332
|
+
| Type | Use When | Example |
|
|
333
|
+
|------|----------|---------|
|
|
334
|
+
| Step dots | 3-5 discrete screens | Welcome carousel |
|
|
335
|
+
| Progress bar | Linear multi-step flow | Account setup wizard |
|
|
336
|
+
| Checklist | Non-linear tasks | Workspace configuration |
|
|
337
|
+
| Fraction (2/5) | Exact position needed | Survey questions |
|
|
338
|
+
| Ring/circle | Single metric | Profile completeness |
|
|
339
|
+
|
|
340
|
+
Always show progress -- it reduces abandonment. Animate progress fill for momentum.
|
|
341
|
+
Pre-fill for auto-completed steps to create endowed progress effect (starting at
|
|
342
|
+
2/10 completes more than 0/8 with same work remaining).
|
|
343
|
+
|
|
344
|
+
### 4.3 Skip Button Design
|
|
345
|
+
|
|
346
|
+
- **Placement:** Top-right corner (close/dismiss convention)
|
|
347
|
+
- **Style:** Text link, muted color -- visible but not competing with primary CTA
|
|
348
|
+
- **Copy:** "Skip" / "I already know this" / "Use defaults" / "Not now" / "Later"
|
|
349
|
+
- **Behavior:** Advance to next meaningful state, not blank screen. Track skip
|
|
350
|
+
rates per screen -- high rate signals low-value step.
|
|
351
|
+
|
|
352
|
+
### 4.4 Celebration Animations
|
|
353
|
+
|
|
354
|
+
**Celebrate:** First value moment, checklist completion, profile setup, first invite.
|
|
355
|
+
|
|
356
|
+
**Guidelines:**
|
|
357
|
+
- Duration: 1-2 seconds (registers without blocking)
|
|
358
|
+
- Match product visual language: confetti, checkmarks, character animations
|
|
359
|
+
- Pair with encouraging copy: "You're all set!" / "Great start!"
|
|
360
|
+
- Haptic feedback on mobile (UIImpactFeedbackGenerator / HapticFeedbackConstants)
|
|
361
|
+
- Use Lottie/Rive for complex animations; degrade to static for reduced motion
|
|
362
|
+
- Never auto-play sound
|
|
363
|
+
- Iconic examples: Asana's flying unicorn, Mailchimp's high-five
|
|
364
|
+
|
|
365
|
+
### 4.5 Tooltip Pointing and Highlighting
|
|
366
|
+
|
|
367
|
+
**Spotlight/coach mark pattern:**
|
|
368
|
+
- Dim background to 60-70% opacity overlay
|
|
369
|
+
- Cut out target element so it appears highlighted
|
|
370
|
+
- Pulse animation on target draws attention without aggression
|
|
371
|
+
- Arrow must touch/nearly touch the target; tooltip must not occlude it
|
|
372
|
+
- Click highlighted element: perform normal action AND advance tour
|
|
373
|
+
- Provide next/back/skip-all navigation with step count (2 of 4)
|
|
374
|
+
|
|
375
|
+
### 4.6 Loading States During Onboarding
|
|
376
|
+
|
|
377
|
+
Use branded skeleton screens with incremental progress messages ("Creating your
|
|
378
|
+
channels... Importing preferences... Almost there..."). Never show blank screen
|
|
379
|
+
or generic spinner during onboarding -- every moment is a branding opportunity.
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## 5. Anti-Patterns
|
|
384
|
+
|
|
385
|
+
### 5.1 Mandatory Multi-Screen Carousel
|
|
386
|
+
|
|
387
|
+
5+ screen carousel with no skip. NNG: "deck-of-cards tutorials make the interface
|
|
388
|
+
appear more complicated than it is and strain user's memory." Users retain nothing.
|
|
389
|
+
**Fix:** 1-2 value screens with skip, or contextual help within the product.
|
|
390
|
+
|
|
391
|
+
### 5.2 Account Wall Before Value
|
|
392
|
+
|
|
393
|
+
Requiring signup before any product experience. Users have zero investment.
|
|
394
|
+
Appcues: "if your app requires signup before exploration, you'll shed customers."
|
|
395
|
+
**Fix:** Duolingo model -- experience value first, frame signup as "save progress."
|
|
396
|
+
|
|
397
|
+
### 5.3 Feature-Dump Onboarding
|
|
398
|
+
|
|
399
|
+
Listing every feature during onboarding. Information overload causes cognitive
|
|
400
|
+
shutdown. Feature lists are perceived as marketing, not help.
|
|
401
|
+
**Fix:** Introduce only 1-2 features for the first value moment. Reveal the rest
|
|
402
|
+
progressively.
|
|
403
|
+
|
|
404
|
+
### 5.4 No Skip Option
|
|
405
|
+
|
|
406
|
+
Forcing every step on all users. Experienced and returning users trapped in flows
|
|
407
|
+
designed for the lowest common denominator.
|
|
408
|
+
**Fix:** Every non-essential screen gets a visible skip mechanism.
|
|
409
|
+
|
|
410
|
+
### 5.5 Re-Showing Completed Onboarding
|
|
411
|
+
|
|
412
|
+
Same flow on every launch or update. Signals the app does not know the user.
|
|
413
|
+
**Fix:** Persist completion state with versioned flag (onboarding_v3_completed).
|
|
414
|
+
|
|
415
|
+
### 5.6 Teaching UI Instead of Value
|
|
416
|
+
|
|
417
|
+
"Tap here to open the menu" -- mechanics without purpose. Users forget instructions
|
|
418
|
+
disconnected from goals within seconds.
|
|
419
|
+
**Fix:** Frame as outcomes: "Find projects your team is working on."
|
|
420
|
+
|
|
421
|
+
### 5.7 Permission Requests Without Context
|
|
422
|
+
|
|
423
|
+
Batch-requesting camera, location, notifications, contacts on first launch with
|
|
424
|
+
no explanation. Feels invasive. Denied permissions are hard to recover on iOS.
|
|
425
|
+
**Fix:** Pre-permission priming with benefit explanation. Request at relevance.
|
|
426
|
+
|
|
427
|
+
### 5.8 Onboarding That Does Not Match the Product
|
|
428
|
+
|
|
429
|
+
Different colors, typography, illustration style from the actual product. Creates
|
|
430
|
+
jarring transition and subconscious deception.
|
|
431
|
+
**Fix:** Design onboarding as part of the product, same design system. Linear
|
|
432
|
+
exemplifies this -- onboarding is indistinguishable from the product.
|
|
433
|
+
|
|
434
|
+
### 5.9 Tooltip Overload
|
|
435
|
+
|
|
436
|
+
8-15 tooltips on a single screen with "1 of 12" counter. Users click Next
|
|
437
|
+
reflexively without reading. NNG: tutorials "don't necessarily improve performance."
|
|
438
|
+
**Fix:** Max 3-5 per tour. Break longer tours across sessions. Replace most
|
|
439
|
+
tooltips with self-evident UI.
|
|
440
|
+
|
|
441
|
+
### 5.10 Asking Too Many Questions
|
|
442
|
+
|
|
443
|
+
10+ question survey before any product use. Users do not trust the product enough
|
|
444
|
+
for this investment yet.
|
|
445
|
+
**Fix:** 2-4 high-impact questions max. Derive the rest from behavior (TikTok's
|
|
446
|
+
approach: ask nothing, learn everything from usage).
|
|
447
|
+
|
|
448
|
+
### 5.11 Dark Patterns in Onboarding
|
|
449
|
+
|
|
450
|
+
Tricking users into notifications, contact sharing, or paid trials. Short-term
|
|
451
|
+
metric gains destroyed by trust damage, negative reviews, regulatory risk.
|
|
452
|
+
**Fix:** Transparent communication. "Start free trial" clearly distinct from
|
|
453
|
+
"Continue."
|
|
454
|
+
|
|
455
|
+
### 5.12 No Ongoing Onboarding
|
|
456
|
+
|
|
457
|
+
Treating onboarding as a one-time first-session event. Users discover new needs
|
|
458
|
+
as they grow; advanced features need their own onboarding moments.
|
|
459
|
+
**Fix:** Build continuous onboarding: tooltips for new features, progressive
|
|
460
|
+
unlocking, contextual help at usage milestones.
|
|
461
|
+
|
|
462
|
+
### 5.13 Ignoring the Empty State
|
|
463
|
+
|
|
464
|
+
After onboarding, dropping users on a blank screen with no guidance.
|
|
465
|
+
**Fix:** Every empty state needs a primary CTA, optional templates, and an
|
|
466
|
+
illustration showing what the populated state looks like.
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## 6. Accessibility
|
|
471
|
+
|
|
472
|
+
Accessible onboarding is not optional. Users with disabilities encounter your
|
|
473
|
+
product for the first time too.
|
|
474
|
+
|
|
475
|
+
### 6.1 Screen Reader Support for Carousels and Tours
|
|
476
|
+
|
|
477
|
+
**WCAG requirements:** 1.3.1 Info and Relationships (semantic structure); 4.1.2
|
|
478
|
+
Name, Role, Value (accessible names on all interactive elements).
|
|
479
|
+
|
|
480
|
+
**Carousel implementation:**
|
|
481
|
+
```html
|
|
482
|
+
<div role="region" aria-label="Welcome tour" aria-roledescription="carousel">
|
|
483
|
+
<div role="group" aria-roledescription="slide" aria-label="1 of 3">
|
|
484
|
+
<h2>Welcome to AppName</h2>
|
|
485
|
+
<p>Description of first value proposition</p>
|
|
486
|
+
</div>
|
|
487
|
+
<button aria-label="Previous slide">...</button>
|
|
488
|
+
<button aria-label="Next slide">...</button>
|
|
489
|
+
<div aria-live="polite">Slide 1 of 3</div>
|
|
490
|
+
</div>
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
**Tour/tooltip requirements:** Move focus to tooltip programmatically. Announce
|
|
494
|
+
via aria-live. Ensure spotlight overlay does not trap focus. Return focus to
|
|
495
|
+
highlighted element after dismissal.
|
|
496
|
+
|
|
497
|
+
### 6.2 Keyboard Navigation
|
|
498
|
+
|
|
499
|
+
WCAG 2.1.1 (Level A): every interaction operable via keyboard alone.
|
|
500
|
+
- Tab order follows visual order: content, then controls
|
|
501
|
+
- Arrow keys for carousel slides (left/right)
|
|
502
|
+
- Enter/Space for buttons; Escape to dismiss tooltips/modals/overlays
|
|
503
|
+
- Focus moves to step heading on navigation; no focus trapping behind overlays
|
|
504
|
+
- Skip button must be in tab order; progress indicators keyboard-accessible
|
|
505
|
+
|
|
506
|
+
### 6.3 Reduced Motion Alternatives
|
|
507
|
+
|
|
508
|
+
Respect `prefers-reduced-motion` at OS level:
|
|
509
|
+
```css
|
|
510
|
+
@media (prefers-reduced-motion: reduce) {
|
|
511
|
+
.onboarding-step { transition: opacity 200ms ease; }
|
|
512
|
+
.confetti, .particle-effect { display: none; }
|
|
513
|
+
.carousel { animation: none; }
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
**Replace, do not remove:** Animated confetti becomes static checkmark with text.
|
|
518
|
+
Slide transitions become instant switch or fade. Bouncing tooltips become static
|
|
519
|
+
with visible border. Progress bar animation becomes instant fill.
|
|
520
|
+
|
|
521
|
+
### 6.4 Progress and Timing
|
|
522
|
+
|
|
523
|
+
- Announce progress to screen readers: "Step 2 of 5: Choose your interests"
|
|
524
|
+
- Use `aria-valuenow/min/max` on progress bars
|
|
525
|
+
- Announce completion: "Onboarding complete"
|
|
526
|
+
- WCAG 2.2.1 Timing Adjustable: auto-advancing must be pausable/extendable
|
|
527
|
+
- WCAG 2.2.2 Pause, Stop, Hide: auto-playing carousels need pause controls
|
|
528
|
+
- Prefer user-initiated navigation only; no auto-advance
|
|
529
|
+
- Minimum 3-4 seconds per sentence for reading time
|
|
530
|
+
|
|
531
|
+
### 6.5 Color, Contrast, and Touch Targets
|
|
532
|
+
|
|
533
|
+
- Progress indicators must not rely solely on color (add labels/patterns)
|
|
534
|
+
- Tooltip text: 4.5:1 contrast ratio (WCAG AA); large text: 3:1
|
|
535
|
+
- All buttons/interactive elements: minimum 44x44 CSS pixels (WCAG 2.5.8)
|
|
536
|
+
- Carousel dots: make tappable at 44x44 or provide separate next/prev buttons
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
## 7. Cross-Platform Adaptation
|
|
541
|
+
|
|
542
|
+
### 7.1 iOS
|
|
543
|
+
|
|
544
|
+
**Permissions:** One-shot model -- denial requires manual Settings navigation.
|
|
545
|
+
Pre-permission priming screens are essential. Request only what is needed now.
|
|
546
|
+
|
|
547
|
+
**App Tracking Transparency (ATT):** Required since iOS 14.5 for cross-app
|
|
548
|
+
tracking. Must appear before any tracking. Timing strategies:
|
|
549
|
+
- **Early (first launch):** Largest reach, low opt-in (~15-25%)
|
|
550
|
+
- **Mid-funnel (after value):** Higher opt-in (~30-40%)
|
|
551
|
+
- **Best practice:** Show after first value moment with custom pre-permission
|
|
552
|
+
screen. Never use dark patterns -- Apple reviews for this.
|
|
553
|
+
|
|
554
|
+
**Design conventions:** System-standard permission UI. Support Dynamic Type.
|
|
555
|
+
Test on iPhone SE (small screen). Support orientation modes.
|
|
556
|
+
|
|
557
|
+
### 7.2 Android
|
|
558
|
+
|
|
559
|
+
**Permissions:** Runtime since Android 6.0+. Android 12+ added approximate vs.
|
|
560
|
+
precise location. Android 13+ requires explicit notification permission. "Don't
|
|
561
|
+
ask again" appears after two denials -- cannot re-prompt, must direct to Settings.
|
|
562
|
+
|
|
563
|
+
**Design conventions:** Material Design 3. Edge-to-edge display (Android 15+).
|
|
564
|
+
Predictive back gestures. Test on diverse screen sizes including foldables.
|
|
565
|
+
Ensure animations do not jank on budget hardware. Privacy disclosure for Play Store.
|
|
566
|
+
|
|
567
|
+
### 7.3 Web
|
|
568
|
+
|
|
569
|
+
**Progressive onboarding:** No "first launch" moment. Users arrive from search,
|
|
570
|
+
social, direct links, email invites. Detect first-time visitors via cookies/
|
|
571
|
+
localStorage. Support deep-linking: contextual onboarding for specific features.
|
|
572
|
+
|
|
573
|
+
**No app store screenshots:** Landing page and in-app flow carry full burden.
|
|
574
|
+
Consider product tour video on landing page.
|
|
575
|
+
|
|
576
|
+
**Browser permissions:** Custom pre-permission screens critical since browser
|
|
577
|
+
prompts are easily dismissed and hard to re-trigger. Camera/mic requested inline.
|
|
578
|
+
|
|
579
|
+
**Responsive:** Same flow must work 320px to 2560px. Mobile: full-screen steps,
|
|
580
|
+
bottom CTAs. Tablet: centered card. Desktop: side panel or modal.
|
|
581
|
+
|
|
582
|
+
**Session persistence:** Persist state server-side for logged-in users, localStorage
|
|
583
|
+
for anonymous. Handle cleared storage and browser switches.
|
|
584
|
+
|
|
585
|
+
### 7.4 Cross-Platform Consistency
|
|
586
|
+
|
|
587
|
+
- **Consistent value narrative:** Same "why" everywhere
|
|
588
|
+
- **Synced personalization:** Mobile prefs reflected on web
|
|
589
|
+
- **Platform-native interactions:** Swipe on mobile, click on web
|
|
590
|
+
- **Feature parity awareness:** Do not onboard platform-exclusive features elsewhere
|
|
591
|
+
- **Synced state:** Complete mobile onboarding, skip on web (via account sync)
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
|
|
595
|
+
## 8. Decision Tree: How Much Onboarding?
|
|
596
|
+
|
|
597
|
+
### 8.1 Scoring Factors (1-10 each)
|
|
598
|
+
|
|
599
|
+
| Factor | 1 (Low) | 10 (High) |
|
|
600
|
+
|--------|---------|-----------|
|
|
601
|
+
| Product Complexity | Single-purpose utility | Expert system (CAD, DAW) |
|
|
602
|
+
| Audience Tech Gap (inverted) | Pro developers | Tech-averse users |
|
|
603
|
+
| Interaction Novelty | Standard platform patterns | New paradigm (AR, voice) |
|
|
604
|
+
| Setup Requirements | Works immediately | Config + migration + team |
|
|
605
|
+
| Error Consequence | Trivially reversible | Irreversible (medical, legal) |
|
|
606
|
+
|
|
607
|
+
### 8.2 Strategy by Total Score
|
|
608
|
+
|
|
609
|
+
**5-15 -- Minimal:** Zero/one welcome screen. Self-evident UI. Contextual tooltips
|
|
610
|
+
for non-obvious features only. (Calculator, Weather, Flashlight)
|
|
611
|
+
|
|
612
|
+
**16-25 -- Light:** 1-2 skippable value screens. Brief personalization (1-2 Qs).
|
|
613
|
+
Empty states with CTAs. Optional feature highlights. (News app, Simple to-do, Social)
|
|
614
|
+
|
|
615
|
+
**26-35 -- Standard:** 2-3 value screens or short tour. 3-5 personalization
|
|
616
|
+
questions. Guided first action. Checklist for setup. Contextual tooltips.
|
|
617
|
+
(Slack, Notion, Headspace)
|
|
618
|
+
|
|
619
|
+
**36-45 -- Comprehensive:** Full interactive tutorial with sandbox. Extensive
|
|
620
|
+
config. Video walkthroughs. Progressive disclosure system. In-app help center.
|
|
621
|
+
14+ day onboarding email sequence. (Figma, Adobe CC, Salesforce)
|
|
622
|
+
|
|
623
|
+
**46-50 -- White-Glove:** All above plus dedicated human specialist. Custom
|
|
624
|
+
implementation and data migration. Training sessions. Phased rollout with
|
|
625
|
+
check-ins. (Enterprise ERP, Medical systems, Industrial software)
|
|
626
|
+
|
|
627
|
+
### 8.3 Decision Flowchart
|
|
628
|
+
|
|
629
|
+
```
|
|
630
|
+
Is the core action self-evident?
|
|
631
|
+
|
|
|
632
|
+
YES --> Value reachable in <30 seconds?
|
|
633
|
+
| YES --> MINIMAL (tooltips only)
|
|
634
|
+
| NO --> LIGHT (guided first action)
|
|
635
|
+
|
|
|
636
|
+
NO --> Setup required before use?
|
|
637
|
+
YES --> Team/collaborative product?
|
|
638
|
+
| YES --> STANDARD+ (checklist + team setup)
|
|
639
|
+
| NO --> STANDARD (personalization + tutorial)
|
|
640
|
+
NO --> Novel interaction model?
|
|
641
|
+
YES --> COMPREHENSIVE (interactive tutorial)
|
|
642
|
+
NO --> LIGHT (contextual help)
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### 8.4 Measuring Effectiveness
|
|
646
|
+
|
|
647
|
+
**Primary metrics:**
|
|
648
|
+
- Activation rate (% reaching defined activation event)
|
|
649
|
+
- Time to first value (seconds from launch to value moment)
|
|
650
|
+
- Completion rate (% finishing full onboarding)
|
|
651
|
+
- Per-step drop-off (identifies problem steps)
|
|
652
|
+
|
|
653
|
+
**Secondary metrics:**
|
|
654
|
+
- Day 1 / Day 7 retention
|
|
655
|
+
- Feature adoption rate for onboarded features
|
|
656
|
+
- Support ticket volume (fewer = better onboarding)
|
|
657
|
+
- Skip rate per step (high = low-value step)
|
|
658
|
+
|
|
659
|
+
**Optimization:** A/B test variants. Instrument every step. Interview abandoners
|
|
660
|
+
and early churners. Review session recordings. Iterate continuously --
|
|
661
|
+
onboarding is never "done."
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
## References
|
|
666
|
+
|
|
667
|
+
### Research and Frameworks
|
|
668
|
+
- NNG. "Onboarding Tutorials vs. Contextual Help." https://www.nngroup.com/articles/onboarding-tutorials/
|
|
669
|
+
- NNG. "Mobile-App Onboarding: Components and Techniques." https://www.nngroup.com/articles/mobile-app-onboarding/
|
|
670
|
+
- NNG. "3 Types of Onboarding New Users." https://www.nngroup.com/videos/onboarding-new-users/
|
|
671
|
+
- UXmatters. "Framework for Choosing Onboarding Experiences." https://www.uxmatters.com/mt/archives/2024/07/a-framework-for-choosing-types-of-onboarding-experiences.php
|
|
672
|
+
|
|
673
|
+
### Industry Analysis
|
|
674
|
+
- Appcues. "User Onboarding Best Practices." https://www.appcues.com/blog/user-onboarding-best-practices
|
|
675
|
+
- Appcues. "Essential Guide to Mobile Onboarding UI/UX Patterns." https://www.appcues.com/blog/essential-guide-mobile-user-onboarding-ui-ux
|
|
676
|
+
- Appcues. "Onboarding Strategies for Invited Users." https://www.appcues.com/blog/user-onboarding-strategies-invited-users
|
|
677
|
+
|
|
678
|
+
### Product Teardowns
|
|
679
|
+
- Appcues. "Duolingo's Onboarding Experience." https://goodux.appcues.com/blog/duolingo-user-onboarding
|
|
680
|
+
- Appcues. "TikTok's Activation-Focused Onboarding." https://goodux.appcues.com/blog/tiktok-user-onboarding
|
|
681
|
+
- UserGuiding. "Slack Onboarding Teardown." https://userguiding.com/blog/slack-user-onboarding-teardown
|
|
682
|
+
- Growth.Design. "Headspace Onboarding Case Study." https://growth.design/case-studies/headspace-user-onboarding
|
|
683
|
+
- fmerian. "Linear FTUX." https://fmerian.medium.com/delightful-onboarding-experience-the-linear-ftux-cf56f3bc318c
|
|
684
|
+
- UX Collective. "Duolingo's Onboarding Testing." https://uxdesign.cc/duolingos-onboarding-2-years-on-3cbccad139f7
|
|
685
|
+
|
|
686
|
+
### Accessibility
|
|
687
|
+
- W3C WAI. "Carousels Tutorial." https://www.w3.org/WAI/tutorials/carousels/
|
|
688
|
+
- Smashing Magazine. "Guide to Accessible Carousels." https://www.smashingmagazine.com/2023/02/guide-building-accessible-carousels/
|
|
689
|
+
- WebAIM. "Animation and Carousels." https://webaim.org/techniques/carousels/
|
|
690
|
+
|
|
691
|
+
### Anti-Patterns
|
|
692
|
+
- Usetiful. "Common Mobile Onboarding Mistakes." https://blog.usetiful.com/2025/08/how-to-fix-mobile-onboarding-mistakes.html
|
|
693
|
+
- DesignerUp. "200 Onboarding Flows Study." https://designerup.co/blog/i-studied-the-ux-ui-of-over-200-onboarding-flows-heres-everything-i-learned/
|
|
694
|
+
|
|
695
|
+
### Micro-Interactions
|
|
696
|
+
- UXPin. "Designing Onboarding Microinteractions." https://www.uxpin.com/studio/blog/designing-onboarding-microinteractions-guide/
|
|
697
|
+
- UserGuiding. "15 Onboarding Micro-Interactions." https://userguiding.com/blog/onboarding-microinteractions
|
|
698
|
+
|
|
699
|
+
### Platform Guidelines
|
|
700
|
+
- Apple. "App Tracking Transparency." https://developer.apple.com/documentation/apptrackingtransparency
|