Part of Joy

Interfaces as data.
Rendered anywhere.

Write a UI as one JSON document. Joy DOM renders it as native UI on web, iOS, and Android.

Why Joy DOM

Web standards

Joy DOM uses a subset of HTML and CSS. You already know the layout model.

Just JSON

Every interface is a JSON file. Diff it and track it in version control.

Native renderers

The same document drives React, Swift, and Kotlin. React Native comes next.

Pixel parity

Each renderer passes the same fixtures, so a document looks the same on every platform.

Agent-ready

Language models write Joy DOM as structured output. A JSON Schema checks it.

Custom components

Register your own native component for a node type and Joy DOM draws it in place.

Joy DOM vs PDF

PDF
Joy DOM
Format
Binary file
Plain JSON
Layout
Fixed page size
Responsive to any screen
Output
One static render
Native UI on web, iOS, Android
Editing
Regenerate the file
Diff and version in git
Interactivity
Static
Live components
Authoring
Exported from an app
Generated from data or an agent

Joy DOM is part of Joy, a toolkit of composable interfaces for developers and agents.

Explore Joy ↗