Your backend
paints the screen.
Flow-UI turns JSON into native SwiftUI. Pages, widgets, actions and theming, all driven by your server. The product is coming soon. Watch a live glimpse on the right, then join the waitlist.

Native where it counts.
Dynamic where it matters.
Open widget registry
One call registers a widget: the backend type string, its payload model, its SwiftUI view. No framework enums, no forks.
Pages that refuse to die
Unknown types and malformed payloads are contained with exact key path diagnostics. One bad widget never blanks a screen.
Actions as data
Taps carry declarative actions: toasts, sheets, API mutations, deeplinks. Handlers chain, so your router stays yours.
Backend controlled chrome
Margins, padding, corners, gradients, borders and widths all come from the response, applied in one fixed order.
Theming that plugs in
Hex colors with dark variants out of the box; design system tokens through one protocol. Light and dark for free.
Loading states built in
Shimmer, skeletons and gradients ship in the framework, per widget and per page, toggleable from the backend.
JSON in. Interface out.
The pipeline is deliberately small: decode through the registry, contain anything broken, render what remains. Every step is observable in the debug console.
Response
One JSON document describes the whole screen: sections, widgets, chrome and actions.
Registry
Each type string resolves to a registered widget. Your app extends the table in one line.
Native render
Real SwiftUI views with real gestures, scrolling and animation. No WebViews anywhere.
Unknown widget on the way? It drops to a labelled placeholder with its key path in diagnostics, and the rest of the page renders. Forward compatibility is the default.
Coming soon
Join the Flow-UI waitlist
Flow-UI is not generally available yet. Pick how you want in, and we will write when there is something real to share.


