The Onboarding Problem
Most mobile teams treat onboarding like concrete: pour it once, hope it works, dread changing it.
Traditional mobile onboarding is stuck in the app binary:
// Hardcoded in your app
struct OnboardingView: View {
var body: some View {
VStack {
Text("Welcome to Acme") // Want to change this? New release.
Text("Get started in minutes") // A/B test? Feature flag + release.
Button("Continue") { ... } // Different CTA by cohort? Good luck.
}
}
}
The result:
- Changing "Get started" to "Start your free trial" = 2-week release cycle
- Testing 3 different hero images = 3 feature flag variants + QA
- Personalizing for enterprise vs consumer = complex conditional logic
Most teams just... don't iterate on onboarding. It's too expensive.
The Server-Driven Approach
With SDUI, onboarding lives on your server:
screen: onboarding_welcome
variant: control
components:
- image:
src: "onboarding/hero-v2.png"
height: 200
- text:
content: "Welcome to Acme"
style: title
- text:
content: "Get started in minutes"
style: body
- button:
text: "Continue"
action: navigate(onboarding_step2)
Now you can:
- Change "Get started in minutes" → deploy in 3 seconds
- Swap the hero image → no release
- Return a different flow for enterprise users → just server logic
Personalized Onboarding by Cohort
Let's say you have three user types:
❌ Traditional Approach
if user.cohort == .enterprise {
showEnterpriseOnboarding()
} else if user.cohort == .smb {
showSMBOnboarding()
} else {
showConsumerOnboarding()
}
// 3 separate hardcoded flows
// 3x the code to maintain
// 3x the QA
✅ SDUI Approach
GET /screens/onboarding
?cohort=enterprise
→ Server returns enterprise flow
→ No client-side branching
→ Change any flow instantly
Your server decides what to show. Your app just renders it.
A/B Testing Without Engineering
The highest-leverage experiment you can run is on onboarding. Yet most teams rarely do it because it's too hard.
With SDUI, it's trivial:
GET /screens/onboarding?user_id=12345
→ Server assigns user to variant (50/50 split)
→ Returns variant A or B
→ Tracks which variant they saw
→ You measure conversion downstream
No feature flags. No release. No engineering time.
Want to test 5 different headlines? 5 server variants, one deploy.
Iteration Speed: The Real Advantage
Traditional mobile: ~8 iterations per year
With SDUI: 50+ iterations per year
Which team is going to have better onboarding?
Why Onboarding is the Perfect First Screen
Start with onboarding. Prove the value. Then expand to other screens.
Ready to Make Onboarding Dynamic?
See how Pyramid lets you ship onboarding changes in seconds, not sprints.
Get Early Access →