19,538
stars
+64+655+1,054
1,037
forks
53
watchers
330
prs
128
issues
238
releases
0
discussions
README
json-render
The Generative UI framework.
Generate dynamic, personalized UIs from prompts without sacrificing reliability. Predefined components and actions for safe, predictable output.
bash
for React
npm install @json-render/core @json-render/react
for React with pre-built shadcn/ui components
npm install @json-render/shadcn
or for React Native
npm install @json-render/core @json-render/react-native
or for video
npm install @json-render/core @json-render/remotion
or for PDF documents
npm install @json-render/core @json-render/react-pdf
or for HTML email
npm install @json-render/core @json-render/react-email @react-email/components @react-email/render
or for Vue
npm install @json-render/core @json-render/vue
or for Svelte
npm install @json-render/core @json-render/svelte
or for SolidJS
npm install @json-render/core @json-render/solid
or for terminal UIs
npm install @json-render/core @json-render/ink ink react
or for full Next.js apps (routes, layouts, SSR, metadata)
npm install @json-render/core @json-render/react @json-render/next
or for 3D scenes (and gaussian splatting via the GaussianSplat component)
npm install @json-render/core @json-render/react-three-fiber @react-three/fiber @react-three/drei three
Why json-render?
json-render is a Generative UI framework: AI generates interfaces from natural language prompts, constrained to components you define. You set the guardrails, AI generates within them:
- Guardrailed - AI can only use components in your catalog
- Predictable - JSON output matches your schema, every time
- Fast - Stream and render progressively as the model responds
- Cross-Platform - React, Vue, Svelte, Solid (web), React Native (mobile) from the same catalog
- Batteries Included - 36 pre-built shadcn/ui components ready to use
Quick Start
1. Define Your Catalog
typescript
import { defineCatalog } from "@json-render/core";
import { schema } from "@json-render/react/schema";
import { z } from "zod";
const catalog = defineCatalog(schema, {
components: {
Card: {
props: z.object({ title: z.string() }),
description: "A card container",
},
Metric: {
props: z.object({
label: z.string(),
value: z.string(),
format: z.enum(["currency", "percent", "number"]).nullable(),
}),
description: "Display a metric value",
},
Button: {
props: z.object({
label: z.string(),
action: z.string(),
}),
description: "Clickable button",
},
},
actions: {
export_report: { description: "Export dashboard to PDF" },
refresh_data: { description: "Refresh all metrics" },
},
});
2. Define Your Components
tsx
import { defineRegistry, Renderer } from "@json-render/react";
const { registry } = defineRegistry(catalog, {
components: {
Card: ({ props, children }) = (
{props.title}
{children}
),
Metric: ({ props }) = (
{props.label}
{forTop issues
#9Question: json-render interoperability with Google A2UI (agent-to-UI protocol)5 comments · 2026-01-16#258How is anyone able to run this project?4 comments · 2026-04-02#7Python bindings4 comments · 2026-01-15#367[Feature request] Resolve directives in conditions (visible, $cond)2 comments · 2026-09-30#335about @json-render/devtools-vue problem2 comments · 2026-09-09#298[Feature Request] Built-in copy/export utility for rendered UI (markdown parity)2 comments · 2026-05-25#291Custom validation checks do not support async implementation2 comments · 2026-05-18#257feat: Claude Code skills for catalog design + multi-surface rendering2 comments · 2026-04-02
Latest release
v0.22.0 v0.22.0 2026-11-04New Features - Chat SDK renderer: Added @json-render/chat to render specs as Chat SDK cards, so one catalog posts natively on Slack, Teams, and the other Chat SDK platforms. streamCard streams a card into a thread and edits it as elements arrive, and toCard validates specs against per-component schemas and optional platform limits. State expressions, visible, and repeat resolve against spec.state (451) - Chat SDK example: Added a playground that previews generated messages as Slack renders them, with a Teams Adaptive Card view and a copy button for Block Kit Builder (451) Contributors - @R
相关报道 (3)
News & coverage (6)
Hacker NewsBenchmark Comparison: JSONL vs. TOON output for JSON-render efficiency▲ 2 · 0 comments · 2026-01-21Hacker Newsjson-render▲ 2 · 2 comments · 2026-01-15news.lavx.huVercel Launches JSON-Render: A Generative UI Framework for AI-Driven Interface Composition2026-03-26infoq.comVercel Releases JSON-Render: a Generative UI Framework for AI-Driven Interface Composition2026-03-26VentureBeatVercel revamps v0 for secure production deployment2026-02-03The New StackVercel’s json-render: A step toward generative UI2026-01-23