Skip to content
Flow-UI
Server driven UI for SwiftUI

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.

Coming soon
Launch week
Save on every accessory
Popular this week
AirPods Pro 2
Active noise cancellation
BESTSELLER
Watch Series 10
GPS, 46 mm
9:41

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.