Compose Multiplatform
The Kotlin declarative ui-framework that carries Jetpack Compose off Android and onto other surfaces. Paged from people-in-space, which runs it on four of them at once: Android (Jetpack Compose), Wear OS, desktop, and web via Kotlin/Wasm — one component model, four form factors, in a single repo.
The second cross-platform framework here, with a different bargain
flutter arrived first and takes the absolutist position: bring your own renderer, paint every pixel, look identical everywhere. Compose Multiplatform is the partial version of the same idea, and the tell is what people-in-space does on iOS — it doesn’t use Compose there at all. The iOS client is SwiftUI, written by hand against the same shared Kotlin core.
That makes the sharing boundary a choice per platform rather than a property of the framework:
| Layer | Shared across all six targets | Written per platform |
|---|---|---|
| Data, networking, persistence, DI | Ktor, SQLDelight, Koin, coroutines | — |
| UI | Compose (Android, Wear, desktop, web) | SwiftUI (iOS) |
Flutter’s model has no such column split. Its widget tree is the UI everywhere, and the platform’s own toolkit is something it renders over, not something you drop into.
What this source doesn’t tell us
people-in-space evidences the targets, not the internals. How Compose Multiplatform actually renders on each surface — whether it owns the canvas the way flutter does, hands off to platform widgets, or varies by target — isn’t visible from a sample app, and the corpus has no source on it yet. That’s the gap to close before this page can sit properly on the spoke’s rendering core → reconciler → framework stack.