HOW?

One file in. Three native apps out.

There are three moves between an idea and a screen someone is holding, and nothing bespoke sits between them.

01 ▍Single source of truth

Structure pages and their content in json.ex files

A page is a plain Elixir module that returns structs — the shape of the screen and the words on it, in one file. The compiler checks it, git versions it, and a change arrives as a diff someone can read.

02 ▍SDUX

A highly scalable Phoenix backend that serves typed design components

That tree ships over a contract generated from a single module, and the Swift and Kotlin models are generated from the contract. It scales because the BEAM does: every request renders in its own process, so latency stays flat as traffic climbs.

03 ▍UI

Express yourself fully as a designer

Lean into the native frameworks — SwiftUI, Jetpack Compose, Heex — and let them do the heavy lifting, so what is left for you is the delight. Layout arrives as intent rather than pixels, and each platform already knows what its own idiom looks like.

Author once ▍Serve typed ▍Render native