In this guide
- Why This Guide Exists
- The Master Comparison Table
- 1. Pyramid — Native SDUI with Typed DSL & BYOC
- 2. Nativeblocks — Native BYOC with Managed Cloud
- 3. Digia — Flutter-First Visual Builder
- 4. Judo — Designer-Focused iOS SDUI
- 5. RemoteCompose — Google's Experimental Renderer
- 6. DivKit — Yandex's Open-Source Cross-Platform SDUI
- 7. DIY / In-House SDUI
- How to Choose: A Decision Framework
- The Bottom Line
Why This Guide Exists
If you're evaluating server-driven UI for your mobile team, the landscape in 2026 is both exciting and overwhelming. There are now multiple commercial platforms, open-source frameworks, an experimental Google project, and the ever-present option of building your own.
The problem? Most comparisons are either marketing pages disguised as blog posts, or shallow listicles that don't help you actually decide. We wanted to create something different: a genuinely thorough, technically honest comparison that covers every viable SDUI option available today.
Yes, we build Pyramid. We're transparent about that. But we also know Pyramid isn't right for every team — and we'd rather help you find the right solution than sell you the wrong one. A team that picks the wrong SDUI tool and has a bad experience hurts the entire category.
Let's dig in.
The Master Comparison Table
Here's the high-level view. Scroll right on mobile to see all columns.
| Dimension | Pyramid | Nativeblocks | Digia | Judo | RemoteCompose | DivKit | DIY |
|---|---|---|---|---|---|---|---|
| Approach | Component-level SDUI, typed DSL codegen | Component-level SDUI, annotation-based | Widget-level SDUI, visual builder | Screen-level SDUI, Mac app builder | Drawing-level rendering | Component-level SDUI, JSON schema | Varies (usually component-level) |
| Platforms | Android (Compose) + iOS (SwiftUI) | Android + iOS (native) | Flutter (Android, iOS, Web) | iOS only (SwiftUI/UIKit) | Android only | Android + iOS + Web | Whatever you build |
| Component model | BYOC (Bring Your Own) | BYOC (Bring Your Own) | Provided + custom | Provided (design tool) | N/A (drawing ops) | Provided (DivKit set) | Your own |
| Target user | Developers (backend + mobile) | Developers + visual editors | Designers + PMs | Designers | Android developers | Developers | Developers |
| Authoring | Typed Kotlin DSL (IDE autocomplete) | Cloud console (visual) + code | Visual drag-and-drop builder | Mac app (Figma-like) | JVM Compose APIs | JSON (manual or tooling) | Your own tooling |
| Experimentation | Built-in (LiveValues) | Via integration | Limited | Limited | ❌ None | DIY integration | Build it yourself |
| Pricing | Early access (free beta) | Free tier + paid plans | Free tier + enterprise | Free (Mac app) | Free (open source) | Free (open source) | 6-18 months engineering |
| Maturity | Beta (production pilots) | Production | Production | Production (niche) | Alpha (experimental) | Production (Yandex-scale) | Depends on investment |
| Best for | Native teams wanting dev control + experimentation | Native teams wanting visual editing + dev foundations | Flutter teams, designer-led workflows | iOS-only teams, design-heavy apps | Experimentation / R&D only | Cross-platform teams wanting open source | Large orgs with unique requirements |
Now let's go deep on each one.
1 Pyramid
Approach & Architecture
Pyramid is a component-level SDUI platform designed for native mobile teams. The core idea: your backend defines screens using a typed Kotlin DSL that gets code-generated from your registered component schemas. The client renders those definitions using your actual Compose and SwiftUI components — not Pyramid's.
This is the BYOC (Bring Your Own Components) model. You build your design system components the same way you always have. Pyramid provides the schema layer, the rendering engine, and the server-to-client pipeline. Your components stay native, testable, and fully yours.
The typed DSL is generated via codegen from your component registrations, giving backend developers IDE autocomplete, compile-time validation, and type safety when composing SDUI screens. No stringly-typed JSON. No runtime surprises.
For a deeper technical dive into this architecture, see our guide on SDUI architecture patterns.
Key Differentiators
- LiveValues: Built-in experimentation primitive. Any property on any component can be made experimentable — variant assignment, exposure tracking, and analytics are handled automatically. No third-party experimentation SDK required.
- Typed DSL codegen: Backend developers author screens in Kotlin with full IDE support. Changes are caught at compile time, not at runtime in production.
- True native rendering: Jetpack Compose on Android, SwiftUI on iOS. Not a cross-platform abstraction — actual native UI toolkit output.
- 53 production components available out of the box, plus full BYOC support for custom components.
Platforms
Android (Jetpack Compose) + iOS (SwiftUI). Both are first-class, not "Android-first with iOS bolted on."
Pricing
Currently in early access / free beta. Pricing model not yet announced.
Maturity
Beta with active production pilots. Not yet at the scale of DivKit or in-house solutions at Yandex/Airbnb, but purpose-built for the problems those teams solved — without requiring 18 months of internal development.
2 Nativeblocks
Approach & Architecture
Nativeblocks takes a BYOC approach similar to Pyramid's but with a different authoring model. You register your native Android and iOS components using annotations — @NativeBlock decorators that expose component properties, actions, and slots to the Nativeblocks system.
The platform includes a managed cloud console where non-developers can visually compose screens using your registered components. Think of it as: developers build the Lego bricks (annotated components), and the cloud console lets anyone assemble them into screens.
Nativeblocks also emphasizes offline-first architecture — SDUI layouts are cached locally so screens render even without network connectivity. This is a meaningful differentiator for apps used in low-connectivity environments.
Key Differentiators
- Annotation-based registration: Add
@NativeBlockto your existing components and they become SDUI-capable. Low ceremony. - Managed cloud console: Visual screen builder that non-developers can use, powered by your real components.
- Offline-first: Built-in layout caching and offline rendering support.
- Integration ecosystem: Connects with analytics and experimentation tools rather than building its own.
Platforms
Android (native) + iOS (native). Both platforms supported with native SDKs.
Pricing
Free tier available. Paid plans for teams needing the managed cloud features, collaboration, and higher usage limits.
Maturity
Production-ready. Actively used by teams in production. More established than Pyramid in terms of production deployments, though with a smaller public footprint than DivKit.
Pyramid vs Nativeblocks: The Key Difference
Both share the BYOC philosophy — your components, your design system. The split is in authoring: Pyramid is developer-first with a typed DSL and codegen (backend devs author screens in Kotlin with IDE support). Nativeblocks is visual-first with a cloud console (anyone can compose screens by dragging components). If your workflow is "backend team defines screens," Pyramid fits. If it's "PMs assemble screens from developer-built components," Nativeblocks fits. For more on this architectural choice, see our comparison guide.
3 Digia
Approach & Architecture
Digia (formerly Digia Studio) is the only SDUI platform purpose-built for Flutter. It takes a low-code, visual builder approach — designers and PMs use Digia's drag-and-drop interface to build screens using Flutter widgets, which are then served to the app at runtime.
The architecture is widget-level: Digia's server sends Flutter widget trees (as JSON) that the client SDK interprets and renders using Flutter's rendering engine. This means you get Flutter's cross-platform benefits (Android, iOS, Web from one codebase) combined with server-driven updates.
Digia provides a set of built-in widgets and also supports custom widgets, though the emphasis is on using their provided component set and visual builder rather than a pure BYOC model.
Key Differentiators
- Flutter-native: Built specifically for Flutter, not adapted from another platform.
- Visual builder: Drag-and-drop screen composition — the most designer-friendly authoring experience in the SDUI space.
- Cross-platform from Flutter: One SDUI definition renders on Android, iOS, and Web via Flutter.
- Low-code focus: Designed to minimize the amount of code needed to create SDUI screens.
Platforms
Flutter (which gives you Android, iOS, and Web). If your team isn't using Flutter, Digia isn't an option.
Pricing
Free tier for small projects. Enterprise pricing for larger teams.
Maturity
Production-ready for Flutter teams. Active development with growing community.
Why Digia Doesn't Compete with Native SDUI
Digia is excellent at what it does — but it's a Flutter tool. If your team uses native Kotlin/Compose and Swift/SwiftUI, Digia isn't in your consideration set. The SDUI vs cross-platform decision is upstream of choosing an SDUI framework. Make that call first.
4 Judo
Approach & Architecture
Judo is a Mac app for building native iOS interfaces that are server-driven. Think Figma meets Interface Builder, but the output is served from a CDN and rendered natively on iOS devices at runtime.
Designers use Judo's Mac app to build screens visually — placing elements, setting up navigation, configuring data bindings. The output is published to Judo's cloud and fetched by the iOS SDK at runtime. It renders as native SwiftUI or UIKit, not a webview.
The component model is provided — you work with Judo's component set in their designer tool. Custom components are supported but the workflow is designer-first, not developer-first.
Key Differentiators
- Mac-native design tool: The best visual authoring experience for iOS SDUI, period. Designers feel at home.
- Native iOS rendering: Output is real SwiftUI/UIKit, not a webview or abstraction layer.
- Designer-owned workflow: Designers can ship UI changes without writing code or waiting for developers.
- Data binding: Connect UI elements to API data within the design tool.
Platforms
iOS only. This is both Judo's strength and limitation. It does one platform exceptionally well.
Pricing
The Mac app is free. Enterprise features and team collaboration have paid tiers.
Maturity
Production-ready for iOS. Established in the iOS design community. Not widely adopted outside designer-heavy iOS teams.
5 RemoteCompose (AndroidX)
Approach & Architecture
RemoteCompose is Google's experimental AndroidX library that captures Compose drawing operations on a JVM server and replays them on an Android client using a compact binary format. It is fundamentally different from every other tool in this guide because it operates at the drawing level, not the component level.
Where other SDUI tools send "render a Card containing a Button," RemoteCompose sends "draw a rounded rectangle at these coordinates, then draw text at this position." The client doesn't know it's rendering a "button" — it's replaying drawing instructions.
We've written extensively about RemoteCompose — see our technical analysis and our article on common RemoteCompose myths.
Key Differentiators
- Binary wire format: Extremely compact payloads — good for bandwidth-constrained scenarios.
- Server-side Compose: Author using real Compose APIs on a JVM server.
- Google backing: Being in AndroidX means long-term investment and potential ecosystem integration.
What It Lacks (Compared to SDUI Platforms)
- No component identity: The client can't distinguish a button from a card — it's all drawing ops.
- No accessibility semantics: No semantic tree means no screen reader support.
- No experimentation: No component-level A/B testing is possible without component identity.
- No cross-platform: Android only. No iOS, no Web.
- No production tooling: No debugger, no layout inspector, no error reporting.
Platforms
Android only. Requires Jetpack Compose on the client, JVM on the server.
Pricing
Free and open source (Apache 2.0, part of AndroidX).
Maturity
Alpha (alpha07 as of March 2026). Experimental. APIs change between releases — alpha07 alone introduced 16 API changes including breaking renames. No production deployment guidance from Google. Do not ship to production.
RemoteCompose Is Not a Complete SDUI Framework
We respect what Google is building — RemoteCompose joining AndroidX validates the entire SDUI category. But it's a rendering primitive, not a platform. Comparing it to Pyramid, Nativeblocks, or DivKit is like comparing a rendering engine to a web framework. They solve different layers of the problem. Read our detailed breakdown for the full picture.
6 DivKit (by Yandex)
Approach & Architecture
DivKit is an open-source, cross-platform SDUI framework developed by Yandex (Russia's largest tech company). It uses a JSON schema to describe UI components that render natively on Android, iOS, and Web.
The architecture is component-level: DivKit defines a standard set of components (containers, text, images, galleries, tabs, etc.) with a comprehensive JSON schema. The server sends JSON layouts, and platform-specific SDKs render them using native views — RecyclerView on Android, UIKit on iOS, DOM elements on Web.
DivKit has been battle-tested at Yandex scale — powering dynamic content across Yandex's apps serving hundreds of millions of users. This is the most mature open-source SDUI framework available.
Key Differentiators
- True cross-platform: Android + iOS + Web from a single JSON definition. The only SDUI tool with mature Web support.
- Battle-tested at scale: Used by Yandex across products serving hundreds of millions of users.
- Open source (Apache 2.0): No vendor lock-in, no licensing costs, full source code access.
- Rich component set: Comprehensive built-in components covering most UI patterns.
- Expression language: Built-in expressions for dynamic calculations, conditional visibility, and data transformations.
- Visual editor: DivKit includes a playground/editor for authoring and previewing layouts.
Tradeoffs
- Provided components, not BYOC: You use DivKit's component set. Custom components require more effort than BYOC approaches.
- JSON authoring: Without a typed DSL, JSON authoring is manual and error-prone at scale. Tooling helps but doesn't eliminate the problem.
- Design system alignment: Your app renders DivKit's interpretation of a "Card" or "Button," not your design system's. Customization is possible but requires work.
- Community & docs: Documentation is improving but historically was limited for non-Russian-speaking developers.
- No built-in experimentation: A/B testing and variant assignment must be built on top.
Platforms
Android (native) + iOS (native) + Web (DOM). All three are mature and production-ready.
Pricing
Free and open source. No managed cloud or paid tier — you host and operate everything yourself.
Maturity
Production-ready at massive scale. The most battle-tested SDUI framework in the comparison. If production stability is your top priority and you're comfortable with self-hosting, DivKit is the safest open-source bet.
7 DIY / In-House SDUI
Approach & Architecture
Many of the biggest mobile apps run custom-built SDUI systems. These aren't hypothetical — they're some of the most sophisticated SDUI implementations in the world:
- DoorDash Lego/Foundry: Component-based SDUI powering DoorDash's merchant pages, discovery, and promotions. Built to handle extreme customization needs across restaurant, grocery, and convenience verticals.
- Airbnb Ghost Platform: Server-driven screens powering much of Airbnb's app. One of the earliest and most influential SDUI implementations, well-documented publicly.
- Lyft: Server-driven UI for ride screens, promotions, and dynamic content. Evolved from simple feature flags to full SDUI.
- Nubank Catalyst: A Flutter tree-walk interpreter powering 43% of the world's largest digital bank. Deep case study here.
- Netflix, Spotify, Uber: All run variations of server-driven UI for content presentation and dynamic experiences.
The Real Cost
Every team that's built DIY SDUI will tell you the same thing: it takes far longer and costs far more than expected.
- Initial build: 6-18 months for a production-ready system (component registry, rendering engine, authoring tools, versioning, error handling)
- Ongoing maintenance: 2-5 dedicated engineers maintaining the platform, not building product features
- Tooling gap: You need authoring tools, debugging tools, monitoring, and documentation — most teams underinvest here
- Platform parity: Building once for Android is hard. Keeping Android and iOS in sync is 3x harder.
Use our SDUI ROI Calculator to estimate the actual cost for your team size.
When DIY Makes Sense
- You're at massive scale (100+ mobile engineers) where customization needs outweigh adoption costs
- You have unique requirements that no existing tool addresses (domain-specific components, unusual platform targets, regulatory requirements)
- You've already tried existing tools and hit concrete limitations — not theoretical ones
- You have dedicated platform team headcount for ongoing maintenance
When DIY Doesn't Make Sense
- You're a team of 5-50 mobile engineers — the opportunity cost is too high
- You haven't tried existing tools yet — you might be building something that already exists
- Your motivation is "we're special" without specific, concrete requirements that existing tools can't meet
- You don't have dedicated headcount for platform maintenance
For a structured approach to introducing SDUI without the full DIY commitment, see the SDUI Adoption Playbook.
The "Build vs Buy" Reality Check
Companies like Airbnb and DoorDash built their own SDUI systems because no viable options existed when they started. In 2026, the landscape is different — Pyramid, Nativeblocks, DivKit, and Digia exist specifically so you don't have to build from scratch. The question isn't "can we build it?" — it's "should we, given what's available?" For most teams, the answer is no. See when not to use SDUI for more on this decision.
How to Choose: A Decision Framework
With seven options on the table, here's how to narrow it down quickly:
Step 1: What's your mobile platform?
- Flutter? → Digia is your primary option (DivKit also has Flutter support)
- iOS only? → Judo if designer-led, Pyramid or Nativeblocks if developer-led
- Android only? → Pyramid, Nativeblocks, or DivKit
- Android + iOS (native)? → Pyramid, Nativeblocks, or DivKit
- Android + iOS + Web? → DivKit (only mature option with Web support)
Step 2: Who authors the SDUI screens?
- Backend developers? → Pyramid (typed DSL, IDE support, compile-time safety)
- Designers or PMs? → Nativeblocks (visual console), Digia (visual builder), or Judo (Mac app)
- Mix of both? → Nativeblocks (visual editor backed by developer components)
Step 3: How important is experimentation?
- Core requirement? → Pyramid (LiveValues built in) or DIY (build your own)
- Nice-to-have? → Nativeblocks (integrates with existing tools) or DivKit (build on top)
- Not needed? → Any option works
Step 4: What's your component philosophy?
- BYOC (use my design system)? → Pyramid or Nativeblocks
- Provided components are fine? → DivKit, Digia, or Judo
- Need full custom control? → DIY
Step 5: What's your risk tolerance?
- Minimal risk, proven at scale? → DivKit (Yandex-scale production) or DIY (full control)
- Comfortable with newer but purpose-built? → Pyramid or Nativeblocks
- Experimental / R&D only? → RemoteCompose
Still not sure? Take our free SDUI Readiness Assessment — it asks the right questions and recommends an approach based on your specific situation.
The Bottom Line
The SDUI landscape in 2026 has real options for every type of team. That's genuinely good for the ecosystem — it means server-driven UI has moved from "big tech luxury" to "accessible for any mobile team."
Here's the honest summary:
- Pyramid is the best fit for native teams who want developer-controlled SDUI with built-in experimentation and typed authoring. It's opinionated about keeping developers in control while giving them the speed of server-driven updates.
- Nativeblocks is the best fit for native teams who want the visual editing layer — PMs and designers composing screens from developer-built components, with solid offline support.
- Digia is the clear choice for Flutter teams. No competition in that space.
- Judo is excellent for iOS-only teams with strong design involvement.
- DivKit is the safest open-source bet — proven at massive scale, true cross-platform including Web, and zero vendor lock-in.
- RemoteCompose is interesting technology with a bright future, but it's not a production SDUI solution today. Watch it, experiment with it, don't ship it.
- DIY is the right call for large organizations with unique requirements and dedicated platform teams. For everyone else, the build-vs-buy math has shifted decisively toward buy.
The worst choice? Doing nothing. If your mobile team is still shipping every UI change through app store review, you're leaving speed, experimentation capability, and engineering productivity on the table. Pick a tool — any tool from this list — and start with one screen. The adoption playbook shows you how.
Related Articles
- What is Server-Driven UI? A Complete Guide for Mobile Teams →
- Pyramid vs RemoteCompose vs DIY SDUI: Which Approach Is Right? →
- RemoteCompose is Now AndroidX: What This Means for SDUI →
- SDUI vs Cross-Platform: Which Solves Your Mobile Release Problem? →
- SDUI Architecture Patterns: Choosing the Right Approach →
- The SDUI Adoption Playbook →
- Why Airbnb, Lyft, and Netflix Use SDUI →
- How Nubank Uses SDUI for 115M Customers →
- Getting Started with RemoteCompose: A Practical Guide (And When You'll Outgrow It) →
- SDUI vs Compose Multiplatform: Solving Different Problems →
Not Sure Which Approach Fits Your Team?
Take our free SDUI Readiness Assessment to get a personalized recommendation, or calculate the ROI of adopting server-driven UI for your specific team size and release cadence.