Onboarding optimization
Quick answer
- 01What is it?
- When the user wants to improve their app's onboarding experience, increase activation rate, reduce Day 1 drop-off, or optimize the first-run flow. The value is a focused slice of onboarding optimization judgment, useful when several similar skills cover the same ground.
- 02Inputs
- Context the agent needs: your goals, audience, constraints, and any source material the skill asks for.
- 03Output
- A ready-to-use result: the analysis, copy, or recommendations the agent produces.
Add this skill
Install as a package
Installs this one skill package for your coding agent, including any supporting files that skill ships with — not every skill in the repository. Read the tutorial.
$ npx skills add eronred/aso-skills --skill onboarding-optimizationUse in Profound
Copy this file into a new Profound Skill. That's it, nothing else to install.
Copy and create in ProfoundOnboarding Optimization
You optimize the first-run experience to maximize activation — the moment a new user completes the core action that predicts long-term retention.
The Activation Principle
Activation ≠ sign-up. Activation is the first time the user gets real value from your app. Identify it before anything else.
| App Type | Activation Event |
|---|---|
| Fitness | First workout completed |
| Productivity | First task or project created |
| Social | First connection made or content posted |
| Finance | First account linked or budget set |
| Games | First level or match completed |
| Meditation | First session completed |
| Photo/Video | First photo edited or exported |
Rule: Everything in onboarding should funnel toward that one activation event as fast as possible.
Initial Assessment
- Check for
app-marketing-context.md - Ask: What is your activation event?
- Ask: What % of new users reach it within 24 hours? (baseline)
- Ask: Where do users drop off? (which step, if known)
- Ask: How long does your current onboarding take? (steps, screens)
- Ask: Do you have Firebase/Mixpanel funnels set up?
Onboarding Audit Framework
Step 1 — Map the Current Flow
List every screen from app open to activation:
App open → [Screen 1] → [Screen 2] → ... → Activation event
Flag each screen: Required | Value-adding | Friction only
Remove or defer everything that is friction-only.
Step 2 — Score Each Screen
| Factor | Question | Score |
|---|---|---|
| Necessity | Can the user reach activation without this? | 0 = skip it |
| Timing | Is this the right moment for this ask? | |
| Value exchange | Does the user understand why this benefits them? | |
| Cognitive load | How many decisions does this require? |
Step 3 — Permission Prompt Timing
Permissions are the #1 drop-off point. Rules:
| Permission | When to ask | Never ask |
|---|---|---|
| Push notifications | After activation, not before | On cold open |
| Location | When the feature needs it | During sign-up |
| Camera/microphone | Contextually, when used | Before any value |
| Contacts | When the social feature is used | In onboarding |
| Tracking (ATT) | After user is invested | On first open |
The pre-permission screen: Always show a native-looking explanation screen before the system prompt. Users who understand the "why" grant at 2–3× the rate.
Step 4 — Sign-Up Friction
| Pattern | Impact | Recommendation |
|---|---|---|
| Required sign-up before value | High drop-off | Defer to post-activation |
| Only email+password | Medium drop-off | Add Sign in with Apple + Google |
| Long profile setup | High drop-off | Ask 1 question max, defer rest |
| Email verification required | Kills momentum | Defer or make optional |
Guest mode / try before sign-up: Allow users to experience the core value before requiring an account. Conversion from guest → registered is typically 40–60% vs. a hard gate at 15–30%.
Onboarding Patterns by App Type
Value-First (recommended for most apps)
Open → Core feature demo / interactive preview
→ Activation moment
→ "Save your progress" → Sign-up
→ Permission asks
→ Personalization
Personalization-First (works for health, fitness, AI apps)
Open → 3–5 personalization questions (show progress bar)
→ "Your plan is ready" reveal moment
→ Sign-up gate (invested now)
→ Activation
Social-First (social apps)
Open → Sign in with Apple/Google (single tap)
→ Find friends / follow suggestions
→ First feed with content
→ Activation (post, comment, react)
Funnel Benchmarks
| Step | Benchmark | Poor |
|---|---|---|
| App open → first interaction | > 85% | < 70% |
| Sign-up conversion | > 60% | < 40% |
| Push permission grant | > 50% | < 30% |
| Activation (D0) | > 40% | < 20% |
| Day 1 retention | > 30% | < 15% |
Personalization Questions
If you include personalization, follow these rules:
- Maximum 3–5 questions in onboarding
- Each question must visibly affect the experience
- Show a progress indicator (step 1 of 3)
- Use visual selections, not text inputs
- Never ask for data you won't use immediately
Paywall Placement in Onboarding
Rule: Show value before the paywall.
| Placement | Works When |
|---|---|
| Before activation | Almost never — user has no reference for value |
| At activation | Strong — user just felt the value |
| Post-activation, D1 | Strongest for subscription apps |
| Contextual (feature gate) | Good for feature-based paywall |
See monetization-strategy for paywall design details.
Output Format
Onboarding Audit
Current flow:
[Screen 1] — Required / friction
[Screen 2] — Value-adding
[Screen 3] — Required / friction
...
[Activation event] — Step N
Drop-off analysis:
Biggest drop: [screen] ([X]% exit rate if known)
Estimated cause: [hypothesis]
Recommended changes:
1. [Remove / defer X] — Expected impact: [lift in activation]
2. [Reorder Y before Z] — Expected impact: [rationale]
3. [Add pre-permission screen for Z] — Expected impact: [grant rate improvement]
Revised flow:
Open → [Screen] → [Screen] → Activation → Sign-up → Permissions
Estimated steps removed: [N]
Estimated time to activation: [Xs → Xs]
Permission Screen Copy Template
[Icon representing the permission]
[Benefit headline — what the user gets]
e.g., "Get notified when your goal is complete"
[One-line explanation]
e.g., "We'll only send you reminders you set — no spam."
[Allow button] [Not now]
Related Skills
retention-optimization— Day 7/30 retention strategymonetization-strategy— Paywall placement and trial designab-test-store-listing— Test onboarding variantsapp-analytics— Set up activation funnel trackingrating-prompt-strategy— When to ask for a rating post-activation
Common questions
How do I install Onboarding optimization in Cursor, Claude Code, or Codex?
Run npx skills add eronred/aso-skills --skill onboarding-optimization in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only Onboarding optimization, not every skill in the repository.
Where does Onboarding optimization come from and what license is it under?
Onboarding optimization comes from the eronred/aso-skills repository on GitHub. That repository has 1.8K GitHub stars. The skill is published under the MIT license.
Prefer plain text? Read the Onboarding optimization guide as markdown.
Related skills
More from eronred