Remote Compose Is Cool — Here's When You'll Outgrow It
AndroidX Remote Compose is generating well-deserved excitement. It's a genuinely clever approach to server-driven UI. But after months of watching teams evaluate it, we've noticed a pattern: they start with Remote Compose, love the concept, then hit walls. Here's an honest look at where those walls are — and what to do when you reach them.
First: What Remote Compose Gets Right
Let's give credit where it's due. Remote Compose (currently at alpha05) introduced several genuinely innovative ideas to the SDUI space:
- Binary document format — Compact, fast to parse, efficient over the wire. No JSON bloat.
- Real Compose on the server — You write actual
@Composable-like code on a plain JVM, not JSON schemas. The API feels native to Kotlin developers. - Drawing-level serialization — Instead of describing "what component to render," RC captures drawing operations. The client doesn't need to know what a "button" is — it just executes layout instructions.
- Official AndroidX backing — This isn't a random GitHub project. It's part of Jetpack, which signals Google's investment in the concept.
If you haven't tried it yet, our RemoteCompose getting started guide walks through building your first remote document. It's genuinely fun.
📊 The Buzz Is Real
In March 2026 alone, 4+ Medium articles were published comparing Remote Compose to SDUI — more than in all of 2025 combined. The developer community is paying attention.
The 7 Limitations That Matter
None of these are fatal flaws. Some may get resolved as RC matures. But if you're evaluating it for production use today, you need to understand what you're signing up for.
1. Android Only — No iOS Story
This is the biggest one. Remote Compose renders to Jetpack Compose. If your product ships on iOS — and most products do — you need a completely separate SDUI solution for SwiftUI or UIKit. That means:
- Two different server response formats
- Two rendering pipelines to maintain
- Two sets of bugs to track
- Divergent behavior between platforms
Companies like Airbnb, Lyft, and Netflix invested heavily in cross-platform SDUI precisely because managing two separate systems is operationally expensive.
⚠️ The Cross-Platform Tax
If you adopt RC for Android and build custom SDUI for iOS, you're maintaining two systems. The engineering overhead often exceeds what a unified platform would cost.
2. Alpha Stability
1.0.0-alpha05 means the API can change between releases. For a prototype or internal tool, that's fine. For a production app serving millions of users, API instability creates real risk:
- Breaking changes in minor releases
- No LTS or stability guarantees
- Limited documentation for edge cases
- Small community means fewer Stack Overflow answers when you're stuck at 2 AM
To be fair, many teams ship alpha Jetpack libraries. But SDUI touches your entire UI rendering pipeline — a breaking change here isn't a minor inconvenience.
3. Fixed Component Set — No BYOC
RC renders from its own primitives. You can compose layouts from columns, rows, text, and basic interactions — but you can't register your ProductCard, your PricingTier, or your custom design system components.
This is the fundamental architectural difference from a component-based SDUI approach. With RC, the server sends drawing instructions. With component-based SDUI, the server says "render a ProductCard with these props" and the client uses your actual component.
Why does this matter? Because most teams already have a design system. They don't want to rewrite their UI in RC primitives — they want to make their existing components server-drivable.
4. No Built-In Experimentation
One of the biggest reasons companies adopt SDUI is experimentation — A/B testing UI changes without app releases. RC has no concept of:
- Feature flags or experiment variants
- Exposure tracking (which users saw which UI)
- Variant assignment or rollout percentages
- Statistical significance or experiment analysis
You'd need to bolt on LaunchDarkly, Statsig, or a custom experiment system on top. That's doable but adds significant complexity — and you lose the tight integration between "what UI was shown" and "what the user did."
5. Binary Format = Harder Debugging
RC serializes layouts into a binary .rc format. When something looks wrong on screen, you can't just open the response in a JSON viewer and see what went wrong. The debugging story is:
- No human-readable wire format
- Limited tooling for inspecting documents
- Harder to log, diff, or audit UI changes
- No "view source" equivalent for non-engineers
JSON-based SDUI isn't glamorous, but when your PM asks "why does this screen look wrong for users in Canada?", you can paste the JSON into a Slack thread and everyone can read it.
6. No Visual Editor or Tooling
Remote Compose is a library, not a platform. There's no:
- Visual screen builder for non-engineers
- Preview environment for testing layouts
- Schema registry for managing component versions
- Audit trail for who changed what
- Rollback mechanism for bad deployments
For an engineering team prototyping dynamic content, this is fine. For a product organization where designers and PMs need to manage screens, it's a gap.
7. No Backend SDK or DSL
When your backend team needs to build screens, they're working with RC's low-level RemoteComposeWriter API directly. There's no typed DSL layer, no backend SDK with IDE autocomplete, and no schema validation at compile time.
Compare this to a system where the backend gets a generated, typed function like productCard(title = "Widget", price = 29.99) — with compile-time errors if you pass the wrong type.
When Remote Compose Is Enough
Not every team needs a full SDUI platform. RC is a solid choice when:
- Android-only product — No iOS to worry about
- Simple dynamic content — Promotional banners, dynamic cards, notification templates
- Small team — 1-3 engineers who can own the entire stack
- Prototype or MVP — Validating the SDUI concept before committing to a platform
- No experimentation needs — You just want dynamic layouts, not A/B testing
✅ RC Sweet Spot
Android-only apps with simple dynamic content needs and a small engineering team. If this describes you, RC is genuinely great — don't over-engineer.
When You'll Outgrow It
Teams typically hit the wall when they need:
- iOS support — The moment your PM says "we need this on both platforms"
- Component governance — When you need to control which components exist, who can use them, and how they're versioned
- Experimentation — When "ship and see" becomes "ship variant A to 50% and measure conversion"
- Team scale — When more than 2 engineers are building server-driven screens
- Enterprise compliance — When you need audit trails, rollback, and approval workflows
Head-to-Head Comparison
| Capability | Remote Compose | Pyramid | DIY SDUI |
|---|---|---|---|
| Android support | ✅ Native Compose | ✅ Native Compose | ✅ Any framework |
| iOS support | ❌ | ✅ Native SwiftUI | ✅ Build it yourself |
| Your components | ❌ RC primitives only | ✅ BYOC | ✅ Full control |
| Type safety | ⚠️ Runtime only | ✅ Compile-time DSL | ⚠️ Up to you |
| A/B testing | ❌ Not included | ✅ Live Values | ⚠️ Build it |
| Visual editor | ❌ | ✅ | ⚠️ Build it |
| Wire format | Binary (.rc) | JSON (readable) | Your choice |
| Backend SDK | ❌ Low-level Writer API | ✅ Kotlin + TypeScript | ⚠️ Build it |
| Stability | Alpha | Beta (production-tested) | Your responsibility |
| Cost | Free (OSS) | Subscription | Engineering time |
| Time to first screen | Hours | Hours | Weeks |
The Path Forward
Remote Compose is an important project. It validates that server-driven UI belongs in the Android platform — not just in Big Tech internal tools. Google investing in this concept raises the tide for the entire SDUI ecosystem.
But "important" and "production-ready for your team" are different things.
If you're evaluating SDUI today, we'd recommend:
- Try Remote Compose — Build a proof of concept. Understand the paradigm. It's a great learning experience.
- Identify your real requirements — Cross-platform? Experimentation? Component governance? Write them down.
- Match tool to requirements — If RC covers what you need, ship it. If not, don't force it.
For a deeper comparison of all three approaches, see our full Pyramid vs RemoteCompose vs DIY comparison. If you're specifically interested in how Google I/O 2026 positioned RemoteCompose relative to SDUI, we covered that too.
Need SDUI That Works on Both Platforms?
Pyramid gives you server-driven UI for Jetpack Compose and SwiftUI — with your own components, typed DSL, and built-in experimentation. No binary formats, no platform lock-in.
Join the Waitlist