Let users generate dashboards, widgets, apps, and data visualizations from prompts — safely constrained to components you define.
npm install @json-render/core @json-render/react
Set the guardrails. Define which components, actions, and data bindings AI can use.
End users describe what they want. AI generates JSON constrained to your catalog.
Stream the response. Your components render progressively as JSON arrives.
Components, actions, and validation functions.
{`import { createCatalog } from '@json-render/core';
import { z } from 'zod';
export const catalog = createCatalog({
components: {
Card: {
props: z.object({
title: z.string(),
description: z.string().nullable(),
}),
hasChildren: true,
},
Metric: {
props: z.object({
label: z.string(),
valuePath: z.string(),
format: z.enum(['currency', 'percent']),
}),
},
},
actions: {
export: { params: z.object({ format: z.string() }) },
},
});`}
Constrained output that your components render natively.
{`{
"key": "dashboard",
"type": "Card",
"props": {
"title": "Revenue Dashboard",
"description": null
},
"children": [
{
"key": "revenue",
"type": "Metric",
"props": {
"label": "Total Revenue",
"valuePath": "/metrics/revenue",
"format": "currency"
}
}
]
}`}
{feature.desc}
npm install @json-render/core @json-render/react