Playbook
The SDUI Adoption Playbook: How to Introduce Server-Driven UI Without Rewriting Your App
A 4-phase plan for going from "we should try SDUI" to "40% of our app is server-driven" — based on how DoorDash, Nubank, and Airbnb did it.
March 23, 2026 · 12 min read
You've read the case studies. You know DoorDash runs 40% of their app on SDUI. You know Nubank serves 115 million customers with 43% server-driven screens. You're convinced it works.
But how do you actually adopt it?
Most teams fail at SDUI not because the technology is wrong, but because the adoption strategy is wrong. They try to boil the ocean. They pitch a 6-month rewrite. They build the framework first and find the use case later.
This playbook is different. It's a phased, low-risk approach that lets you prove value in weeks, not months — and scale only after you have evidence.
Why 2026 Is the Year to Adopt SDUI
Three things have changed that make SDUI adoption dramatically easier than even 2 years ago:
- Mature native frameworks. Jetpack Compose and SwiftUI are production-stable. Declarative UI on native platforms means building an SDUI renderer is 10x simpler than the View/UIKit era.
- Google's validation. RemoteCompose is now AndroidX. Google officially supports server-driven rendering on Android. The "is this a real pattern?" debate is over.
- Tooling exists. You no longer need to build everything from scratch. Open-source options (DivKit, RemoteCompose) and platforms like Pyramid give you a foundation to start from.
The 3 Anti-Patterns That Kill SDUI Projects
Before the playbook, let's address what not to do. These patterns have killed more SDUI initiatives than technical complexity ever has:
Anti-Pattern 1: The Big Rewrite
"Let's rebuild the whole app on SDUI." This is how you burn 6 months and ship nothing. SDUI is not an all-or-nothing proposition. Even DoorDash didn't start this way — they started with a single promotional card.
Anti-Pattern 2: Framework First, Use Case Later
"Let's build a perfect component system, then find screens to use it on." This inverts the right order. Start with a specific screen that has a specific pain point (slow release cycle, frequent changes). Let the use case drive the framework design.
Anti-Pattern 3: Premature Generalization
"Our SDUI system needs to handle every possible layout." It doesn't. Your first SDUI screen probably needs 5-8 components. Your 20th screen might need 15. Build what you need, when you need it. Not every screen should be server-driven.
Phase 1: The Single-Screen Proof (Week 1-2)
Goal: Ship one real screen driven by your server. Show that it works, it's fast, and it didn't require a 3-month project.
- Choose your first screen (see criteria below)
- Define 5-8 components needed for that screen
- Build a minimal renderer (JSON → native components)
- Deploy behind a feature flag
- Measure: rendering performance, crash rate, time-to-ship a change
💡 Tip: Use Pyramid to skip the renderer
If you don't want to build a renderer from scratch, Pyramid gives you a production-ready renderer for Jetpack Compose and SwiftUI with 53+ built-in components. Your Phase 1 becomes: integrate the SDK and define your screen layout in the DSL.
What success looks like: You ship a change to the SDUI screen. It goes live in minutes instead of days. Someone on the team says "wait, that's it?"
Phase 2: The Pattern Library (Week 3-6)
Goal: Expand from 1 screen to 3-5 screens. Build the component library that emerging patterns demand.
- Identify 4-5 more screens using the same criteria as Phase 1
- Extract common components into a shared library
- Add an action system (navigation, API calls, state changes)
- Implement fallback/error handling (see our guide)
- Set up a basic schema versioning strategy
- Document the component catalog for other engineers
By the end of Phase 2, you should have:
- A component library covering 80% of your content-like screens
- A clear JSON schema that other engineers can read and extend
- At least one non-engineer who can modify SDUI screens (product manager, designer)
- Concrete data: how much faster are you shipping changes?
⚠️ Watch out: The "just one more feature" trap
Phase 2 is where scope creep kills projects. You'll be tempted to add animations, complex state machines, custom layouts. Resist. Get 5 screens working well with simple components before optimizing.
Phase 3: Production Scale (Month 2-4)
Goal: Move from "we have SDUI" to "SDUI is how we ship content-like screens by default."
- Add A/B testing support (automatic exposure tracking)
- Build a testing strategy (screenshot tests, contract tests)
- Implement caching and performance optimization
- Create a decision framework: "Should this screen be SDUI?"
- Train other teams to build SDUI screens
- Add analytics/event tracking to SDUI components
Phase 3 is where the ROI really compounds. Each new SDUI screen you add is marginally cheaper than the last because the component library already exists. This is the flywheel effect — the same one that let DoorDash scale from a few screens to 40% of their app.
Phase 4: Org-Wide Adoption (Month 4-12)
Goal: SDUI is a first-class architectural pattern in your org. New screens default to server-driven unless there's a reason not to.
- SDUI is part of your architecture decision records
- Non-engineers can create and edit screens (visual editor or DSL)
- Experiment velocity is measurably higher (3-5x typical)
- Release cycles are shorter because fewer changes require app updates
- Custom component creation is self-service (teams add their own components)
How to Choose Your First SDUI Screen
Your first screen sets the tone. Choose wrong and the project dies. Choose right and you have an internal case study that sells itself. Here's the scoring framework:
✅ Ideal first screen characteristics:
- Changes frequently — weekly or more (promotions, onboarding, settings)
- Mostly static content — text, images, buttons, cards (not complex animations)
- Low interaction complexity — reads data, maybe navigates somewhere. Not a form-heavy workflow
- High visibility — a screen stakeholders care about (so success is noticed)
- Non-critical path — if it breaks, the app still works (so risk is low)
- Already causes release bottlenecks — "we need to wait for the next release to change this"
Best candidates by screen type:
- 🏆 Home/discovery feed — promotional cards, featured content (this is where DoorDash started)
- ⚙️ Settings/configuration screens — rarely interactive, changes often for compliance
- 👋 Onboarding flows — constantly tested, high business impact, mostly content
- 📊 Dashboard/overview screens — data display with cards and lists
- 🎨 Feature announcement/promotion screens — time-sensitive, needs instant updates
Avoid for your first screen:
- Login/authentication flows (security-critical)
- Complex forms with validation (too much interaction)
- Real-time features (chat, live tracking)
- Screens with heavy custom animations
Build vs. Buy: The Real Math
Let's be honest about the costs:
🔨 Build from scratch
- Initial build: $300K-$1M (6-18 months, 2-4 engineers)
- Annual maintenance: $150K-$400K (dedicated SDUI team)
- Time to first screen: 3-6 months
- Best for: Large teams (50+ engineers) with unique requirements
📦 Use a platform (e.g., Pyramid)
- Cost: $99-$499/month
- Time to first screen: 1-2 weeks
- Maintenance: Handled by the platform
- Best for: Teams of 5-50 engineers who want to ship, not build infrastructure
Use our ROI Calculator to see the specific numbers for your team.
The build-vs-buy decision usually comes down to one question: Is building SDUI infrastructure your competitive advantage? If you're DoorDash, maybe. If you're building a fintech app, your competitive advantage is your financial product — not your UI delivery mechanism.
Measuring Success
Track these metrics from day one. They're how you justify expanding SDUI adoption:
📊 Key Metrics
- Time to ship a UI change: Before (release cycle) vs. after (deploy time). This is your headline number.
- Release frequency: How many app store releases do you need? Should decrease as more screens go server-driven.
- Experiment velocity: Number of A/B tests run per month. Should increase 3-5x.
- Engineering hours on UI changes: Time spent on "change this button text" type work. Should approach zero for SDUI screens.
- Screen rendering performance: SDUI screens should render within 16ms of receiving the JSON (one frame). If they don't, you have a performance problem.
- Crash rate delta: Compare crash rates on SDUI vs. native-only screens. Should be equivalent.
The number that matters most: "From code complete to live in production." If this goes from days to minutes for your SDUI screens, you've succeeded. Everything else is a consequence of this speed.
Next Steps
Here's what to do right now:
- Identify your first screen using the criteria above
- Estimate the ROI with our SDUI ROI Calculator
- Pick your approach: build or buy
- Set a 2-week deadline for your first SDUI screen to be live behind a feature flag
If you're serious about making this work, we've helped teams go from zero to server-driven in under 2 weeks. Book a 15-minute call and we'll walk through your specific architecture.
Ship your first SDUI screen this week
Pyramid gives you a production-ready renderer, 53+ components, and a typed DSL — so you can skip Phase 1's build work.
Get Early Access →
Further Reading