Ship a new onboarding
before lunch. No release.

Build, personalize and A/B test your mobile onboarding from a canvas or from your AI agent. Every screen is served from Onset, so changes reach users on every version the moment you publish.

Start freeSee how it worksiOS · Android · React Native · Flutter
Hi. I'm your onboarding. I used to need an app release to change a word. Now I don't.
TEAMS THAT STOPPED SHIPPING RELEASES TO FIX ONBOARDING
NorthstarLoopTrailheadKindle & CoPocketbook
THE PROBLEM

The screens everyone sees are the ones nobody tests.

Day one decides retention. It ships once and freezes.
The first five screens get more traffic than anything else in your app and the least iteration. Every user sees them; almost nobody measures them.
A copy change costs a release.
Build, review, wait, hope. Two weeks to learn one thing. Growth stops asking, engineering stops offering, and the onboarding stays whatever it was at launch.
You don't know which question would change everything.
One good question up front can personalize the whole app and hand you segments for free. Finding it takes experiments, and experiments need a place to run.
HOW IT WORKS

Install once. Change forever.

01
Install the SDK
One call where your onboarding used to be. Native rendering on iOS, Android, React Native and Flutter. Your agent can do this part.
02
Build on the canvas, or by prompt
Import what you have, then edit visually or tell your agent what to change. Screens, questions, branches, paywalls.
03
Test, then publish. No release.
Run A against B. See every step. When one wins, roll it out to every version of your app in a second.
BUILD WITH YOUR AI AGENT

Your next onboarding can start with a prompt.

Install the Onset skill in the agent you already use. It reads your current onboarding straight from the codebase, rebuilds it on the canvas, and takes changes in plain language. Switch between prompting and editing whenever you like.

01Add the skillOne command installs the Onset skill in Claude Code, Codex, Cursor or Gemini CLI.
02Show it what to buildPoint it at your repo, a Figma file or screenshots. It rebuilds the flow on the canvas as an editable draft.
03Iterate and publishAsk for changes in plain language or fine-tune on the canvas. Preview on device, run it as an experiment, publish when it wins.
WORKS WITHClaude Code·Codex·Cursor·Gemini CLI·Copilot CLI
claude code · stride-ios
$ npx onset@latest skill add
› Onset skill installed for Claude Code

you › import our onboarding into onset and shorten it to 3 screens
› found OnboardingCoordinator.swift · 6 screens · 2 branches
› rebuilt on canvas as welcome-v3 (pixel-matched)
› drafted welcome-v4: goal → plan → paywall
› moved notifications to after first completed run
✓ experiment created: v3 vs v4 · 50/50 · open in Onset ↗
Everything the agent makes is an editable draft on the canvas. Nothing publishes until you say so.
SERVER-DRIVEN UI

Native screens. Served, not shipped.

Your app ships once with the SDK. Every onboarding screen, question, copy block and button is a definition we send at launch and the SDK renders as real native components. Publish a change and every version of your app, including the one from last year, shows it on next open.

Native rendering, not a webviewLoads offline from the last published flowInstant updates, no app review
// onboarding.json
{ "screen": "welcome",
  "title": "What brings you here?",
  "options": [...],
  "next": { "branch": "answer" } }
What brings you here?
PERSONALIZATION

Ask one question. Show a different app.

Your users aren't one audience, so stop onboarding them like one. Each answer routes to a different next screen, copy, default plan and paywall. Answer as a user would and watch the path change.

Q1How experienced are you?
Q2When do you usually have time?
Nothing is hardcoded. Each answer selects the next screen from the server.
How experienced are you?
Answer on the left to see the screen change.
Beginner
Intermediate
Advanced
Continue
FUNNEL · ALL VARIANTS · 7D12,480 USERS
Welcome
0%
Goal question
0%
Notifications
0%
Account
0%
Paywall
0%
Heads up: 31% of users leave at the notifications prompt, mostly Beginners from TikTok. Want me to draft a variant that asks after the first run?
EXPERIMENTS

Find the leak before lunch. Fix it by dinner.

Every screen, every variant, every segment. Onset watches the funnel, tells you where people leave and why, and drafts the next test. You approve. It ships.

Test whole journeys, not just one screen's copySequential stats, so peeking early doesn't fool youResults land in your analytics, not just ours
DATA

Your users tell you who they are. Keep it.

Onboarding is the one moment users answer anything you ask. Onset saves every answer as a user property, so retention, trial start and drop-off are already split by goal, experience and source. No tracking plan, no taxonomy meeting, and it all flows to the analytics you already run.

SEGMENT BY ANSWER
Goal
Experience
Source
Also available as user properties in your own analytics.
Goal · Get fitter5,120 USERS · 30D
Completion58%+6 pts vs all
Trial start14%−2 pts vs all
D7 retention31%+3 pts vs all
Where this segment leaves
Goal
100%
Schedule
86%
Notifications
61%
Paywall
58%
Leaves at notifications more than any other goal. Try asking after the first run.
ACQUISITION

The ad made a promise. The onboarding should keep it.

Connect Meta, TikTok or your MMP. Onset knows which creative brought each install and opens with the screen that continues it. Pick an ad to see what its users land on, and what that does to CAC.

THE AD
FIRST SCREEN · FLOW race-first
Which race are you running?
We'll build the plan backwards from the date.
10K · spring
Half marathon
Something else
Build my plan
Installs · 30d4,120
Onboarding completion71%+19 pts vs default
Trial start27%+11 pts
CAC to trial$9.40−38%
The goal question is skipped; the ad already answered it. Users land one screen closer to the plan, and Meta gets a trial-start event back per creative.
Flows targeted by campaign, creative, channel or country·Completion and trial start reported back to Meta and TikTok per creative·CAC by onboarding variant, finally
INTEGRATIONS

Answers in. Events out. Everything you already use.

Billing comes in, so you measure onboarding-to-paid, not onboarding-to-done. Answers and steps go out as user properties and conversion events to your analytics, your CRM and your ad platforms. Keep your stack; we feed it.

STREAMING
RevenueCat
Stripe
Google Analytics
Meta
TikTok
PostHog
Mixpanel
Intercom
Firebase
Zapier
subscription_startedinstall_attributedgoal = raceonboarding_completed
● in: subscriptions, installs, attribution● out: answers as user properties, step events, conversions
SDK

One call. Your agent can make it.

Mount Onset where your old onboarding was. It renders native components from the published definition and reports every step back. Install it yourself in twenty minutes, or ask your agent to.

Swift, Kotlin, React Native. Flutter in beta.
import Onset

Onset.configure(apiKey: "pk_live_…")

// where your old onboarding was
OnsetOnboarding(flow: "welcome") { result in
    // result.answers, result.variant
    showHome()
}
“Six onboarding variants in the time it used to take us to ship one. Completion went up 14 points and nobody had to file a ticket.”
Placeholder nameHead of Growth, placeholder company
“One question at the start changed the whole first week. Beginners and advanced users finally see different apps, and both retain better.”
Placeholder nameProduct lead, placeholder company
“Claude Code installed the SDK and imported our flow in one session. The screens look native because they are native.”
Placeholder nameiOS engineer, placeholder company
PRICING

Free until it's making you money.

Priced on how many users you onboard each month. Not seats, not events, not a percentage of your revenue.

FreeINDIE
$0/mo
Up to 5,000 onboarded users / mo
  • Unlimited flows and screens
  • Branching and personalization
  • 1 live experiment
  • Step funnels and segments
Start free
StartupMOST TEAMS START HERE
$49/mo
Up to 25,000 onboarded users / mo
  • Everything in Free
  • Unlimited experiments
  • Collaborators
  • Analytics and billing integrations
Start trial
GrowthRECOMMENDED
$249/mo
Up to 100,000 onboarded users / mo
  • Everything in Startup
  • Ad and MMP targeting
  • Sequential testing
  • Data export and webhooks
Start trial
EnterpriseCUSTOM
Custom
Over 100,000 onboarded users / mo
  • Everything in Growth
  • SSO and audit log
  • Dedicated data region
  • Solutions engineer
Talk to us

Your onboarding is live right now.
Is it the best one you could ship?