HeimUI GitHub

Ship native screens from your backend.

HeimUI is a Server-Driven UI engine for Kotlin Multiplatform. Your backend returns JSON describing a screen; the SDK renders it as native Compose on Android and iOS. Changing a screen becomes a deploy, not an app release.

Kotlin Multiplatform · Android & iOS from one codebase Native Android · no KMP plugin required

Compose Multiplatform’s Android target is Jetpack Compose — the same androidx.compose classes, no duplication — so an ordinary Android module consumes it with nothing special in the build. The only requirement is that your app uses Compose.

Available

Mobile SDK

Installation, the component catalogue, actions, theming and the four levels of customisation.

Works in a Kotlin Multiplatform project and in a plain Android one — no KMP plugin required.

Read the docs →
In progress

Studio

The visual editor for building screens without writing JSON, and publishing them to your own infrastructure.

In progress

Backend

Serving payloads from your own services. The screen contract, the gateway pattern, and how it fits an existing microservice estate.

Why it is built this way

Rendering JSON is the easy part. What separates a toy from something you put in front of users is what happens when things go wrong — a payload from a newer server, a network that drops mid-form, a cache written by an attacker on a rooted device.

Forward compatible

A component type the client has never heard of degrades to nothing and reports itself. An old app does not break on a new payload.

Fails closed

Submissions reach allow-listed hosts only, URLs open allow-listed schemes only, and signed payloads are re-verified when read back from cache.

Degrades, never blanks

Stale-while-revalidate, ETag revalidation, a circuit breaker, timeouts, and an emergency bundle compiled into the app.

Yours to extend

Nine providers, native components addressed by name from the payload, and a data layer you can replace outright.