json-render
How Framewerk relates to json-render — concept mapping only; the exporter is planned, not shipped.
json-render
Status: planned. There is no json-render exporter today. This page is a concept-mapping table. There are no install instructions because there is nothing to install.
json-render is schema-agnostic: you define a catalog of your React components and map JSON to them. Framewerk is the opposite — an opinionated document format with a reference renderer that needs no catalog of yours. The relationship is export — post-1.0 — so a json-render host can draw a Framewerk document through its own components.
Concept mapping
| json-render concept | Framewerk equivalent |
|---|---|
| Component catalog (yours) | Built-in node types; user components are a separate, declared layer |
| Schema / JSON you send | A Framewerk Spec document |
| Props passed to your component | Node layout props + type-specific props |
| Conditional rendering | showWhen / hideWhen expressions |
| State / bindings | stateVars and action strings |
| Navigation | navigate(screenId) + flows[] |
| Theming | styles[] tokens and rules; modes for light/dark |
| Validation | validate() from @framewerk/spec — errors and warnings |
The same screen, both shapes
Framewerk (what you write today):
The same screen as json-render JSON bound to your catalog (illustrative, not a shipped export):
{
"type": "Column",
"props": { "gap": 16, "padding": 24 },
"children": [
{ "type": "Heading", "props": { "text": "Coffee Cart" } },
{ "type": "Button", "props": { "label": "Order", "variant": "primary" } }
]
}
In json-render, Heading and Button must exist in your catalog. In
Framewerk, text and button are part of the format and the reference
renderer draws them with no components of yours. That is the whole
difference; neither is a subset of the other.
When the exporter ships
It will lower a Framewerk document to json-render JSON for a host that already has a catalog. Until then: no install, no CLI, no claim of support. Follow the project changelog for the status flip.