{"_id":"@json-render/next","_rev":"9-b039a692e5f957ed3ca278677e792ee2","name":"@json-render/next","dist-tags":{"latest":"0.21.0"},"versions":{"0.15.0":{"name":"@json-render/next","version":"0.15.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.15.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@studiotate.com"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"94fed46f4c3e29f4a88dfcbfa7e3eb0d8d91aa72","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.15.0.tgz","fileCount":25,"integrity":"sha512-seAozQhjA49WBXf1Xryqk24bpoiPDKB+98Gdldz7abfKcOisTgS0H0ydIwat1I+bGbhthoX4rAfGz10+LAZbjg==","signatures":[{"sig":"MEQCIDi9SPUNMEOfvYraFg6ukDVcC6VC6ehmuthdMtskP5O5AiAnuGsvbz3rkdexfJcAtljMpJ8+Vzjy0AV+NKqnTp5O5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228560},"main":"./dist/index.js","_from":"file:json-render-next-0.15.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"vercel-release-bot","email":"infra+release@vercel.com"},"_resolved":"/tmp/5889ec5f2904aad95c48d8a2dbad50ee/json-render-next-0.15.0.tgz","_integrity":"sha512-seAozQhjA49WBXf1Xryqk24bpoiPDKB+98Gdldz7abfKcOisTgS0H0ydIwat1I+bGbhthoX4rAfGz10+LAZbjg==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"10.8.2","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@json-render/core":"0.15.0","@json-render/react":"0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.15.0_1774653297127_0.4244869557566475","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@json-render/next","version":"0.16.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.16.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@studiotate.com"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"d22de03bbf44545b685b5d6fcc97da66176d3a29","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.16.0.tgz","fileCount":25,"integrity":"sha512-JJKNCHYzCl7tuHvCSoaQcJ+u5swdB18VfBTNKIuzoPl/1mVkn55IAiAmNiKoFofd8t8dBF7g4nQ3ClwFY6Mp7w==","signatures":[{"sig":"MEYCIQCrPs4xc7Mimic6Lw7J2QWADwWcYoFxIMgbO8yDLUYIKAIhAN0p9qJV8IA88H+Ym7U9F+CXytTTtWl5oEjdrFXjj7Ul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228560},"main":"./dist/index.js","_from":"file:json-render-next-0.16.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"vercel-release-bot","email":"infra+release@vercel.com"},"_resolved":"/tmp/4d64a048c1affc55940af3fd824d0b41/json-render-next-0.16.0.tgz","_integrity":"sha512-JJKNCHYzCl7tuHvCSoaQcJ+u5swdB18VfBTNKIuzoPl/1mVkn55IAiAmNiKoFofd8t8dBF7g4nQ3ClwFY6Mp7w==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"10.8.2","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@json-render/core":"0.16.0","@json-render/react":"0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.16.0_1774660915493_0.42616662082647516","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@json-render/next","version":"0.17.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.17.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@studiotate.com"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"980c75db1f8ad0db02d391be2242bb0ad27451f9","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.17.0.tgz","fileCount":25,"integrity":"sha512-n89U9Qihpu3J5KUPNDBXkIKh5Ui6xlc6VaHH/Y77uK7TJVMPUMDUvKtNXfylkoWagrk7osVPpurRiSt1ZjdCXg==","signatures":[{"sig":"MEUCIE6catbJGbuJY3gdl+dSEnzX2PqxsXa2xrhVw2Qzs4EsAiEAofem6DHA82PLq7Z9peGM6Kd9uC9CW6dHIxWQCgtxo54=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228575},"main":"./dist/index.js","_from":"file:json-render-next-0.17.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"rm -rf dist && tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"vercel-release-bot","email":"infra+release@vercel.com"},"_resolved":"/tmp/3a4215d11235407b14f39664159335ea/json-render-next-0.17.0.tgz","_integrity":"sha512-n89U9Qihpu3J5KUPNDBXkIKh5Ui6xlc6VaHH/Y77uK7TJVMPUMDUvKtNXfylkoWagrk7osVPpurRiSt1ZjdCXg==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"10.9.7","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@json-render/core":"0.17.0","@json-render/react":"0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.17.0_1775878891608_0.7775688377939207","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@json-render/next","version":"0.18.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.18.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@studiotate.com"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"58e2dc9c1759447dc43b30d58433391fee4d8034","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.18.0.tgz","fileCount":25,"integrity":"sha512-/xD3dIBQaVO/6qIWBrxBT3szdjO6l/4b0tYrCjMAXKXVdT1fH00sHI8hyd7n9LqJnn3CVoeladXCFmsDvQdzaA==","signatures":[{"sig":"MEYCIQCSS0cLU2xi8alFGb/YYiwXJ9/MrAV/+wVlP06/UGAz0QIhAMu8RnM65UmKcfK/1xYRQCElEBmKV5qOjBHyJqXrerwB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228575},"main":"./dist/index.js","_from":"file:json-render-next-0.18.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"rm -rf dist && tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"vercel-release-bot","email":"infra+release@vercel.com"},"_resolved":"/tmp/217b824bea6a517f2e2a13ecc71d7fa7/json-render-next-0.18.0.tgz","_integrity":"sha512-/xD3dIBQaVO/6qIWBrxBT3szdjO6l/4b0tYrCjMAXKXVdT1fH00sHI8hyd7n9LqJnn3CVoeladXCFmsDvQdzaA==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"10.9.7","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@json-render/core":"0.18.0","@json-render/react":"0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.18.0_1776455196236_0.49052097126842","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@json-render/next","version":"0.19.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.19.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"bba106a8fceafcb14aa9fb4807f472e305712843","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.19.0.tgz","fileCount":25,"integrity":"sha512-846jjD4XrChDmobjEHqZuUKX/yPBwn2AqIbj+TPY0+MW5U6cMxJ6webfXwJYyfEo4BZEfEcNZvqVS+kKPhUkOg==","signatures":[{"sig":"MEYCIQDLTyKce1PFUncTteA+Dfg4e8cJNTT+Y3dfJ5nzkPuOOwIhAIOiRS6yC9Yzx+oi4BqcIDGMsqyHbN8bdRcJr3rIId7A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@json-render%2fnext@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":228575},"main":"./dist/index.js","_from":"file:/tmp/json-render-next-0.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"rm -rf dist && tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2da8e873-3b08-49ac-960c-dc024494a507"}},"_resolved":"/tmp/json-render-next-0.19.0.tgz","_integrity":"sha512-846jjD4XrChDmobjEHqZuUKX/yPBwn2AqIbj+TPY0+MW5U6cMxJ6webfXwJYyfEo4BZEfEcNZvqVS+kKPhUkOg==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"11.11.0","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@json-render/core":"0.19.0","@json-render/react":"0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.19.0_1778131452699_0.351062758275658","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@json-render/next","version":"0.20.0","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"license":"Apache-2.0","_id":"@json-render/next@0.20.0","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@ctate.dev"}],"homepage":"https://json-render.dev","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"5b56f762d06942073998c7f1ec85878270303338","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.20.0.tgz","fileCount":25,"integrity":"sha512-e82upUjlgZ9KodEMXidP1SDd4s8NIQne+h3gGBF3p4dhaPXKnDk/KCQ9gVIA1eTfTHWjNhDzZsKZQ3rAq/mpGw==","signatures":[{"sig":"MEQCIH56/xUWsC8SNfBpQJw47vzU+DBq3LbLigNRSWB8nHhHAiAke6S4fkaDferA283hrNhSu2vueRK0V3Oa+dK+YAZybg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@json-render%2fnext@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236421},"main":"./dist/index.js","_from":"file:/tmp/json-render-next-0.20.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"scripts":{"dev":"tsup --watch","build":"rm -rf dist && tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2da8e873-3b08-49ac-960c-dc024494a507"}},"_resolved":"/tmp/json-render-next-0.20.0.tgz","_integrity":"sha512-e82upUjlgZ9KodEMXidP1SDd4s8NIQne+h3gGBF3p4dhaPXKnDk/KCQ9gVIA1eTfTHWjNhDzZsKZQ3rAq/mpGw==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"11.17.0","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@json-render/core":"0.20.0","@json-render/react":"0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"tmp":"tmp/next_0.20.0_1786888476879_0.29247533100436396","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"_id":"@json-render/next@0.21.0","bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"dist":{"shasum":"a1496c4796802567df6bc5a95dd9ccf1a8c74c7f","tarball":"https://registry.npmjs.org/@json-render/next/-/next-0.21.0.tgz","fileCount":25,"integrity":"sha512-5W+vDI/Anlkac43nKpEnhhgGzwmLUlCGfC1AypBUeFwG9njXwjPE2KoipaobzJiXhMtFHkxgT9hReZ6xyJb0Hw==","signatures":[{"sig":"MEYCIQC9OglakEz2X+6pRkCHkx0uT3Mn/wC3mxccsilovnuG5gIhAKxOOwpAOkZpU0iZL/vM0xoGfyAG08W/gT6UALpdReY9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAS6Pc8OExixAZYMJRiTg88miDOw0SOAZM+UVBTaiyeNAiEAqNFQ01yNWd7rq+Oi9UDW87Kw0j2VWNxdTWQC3Kzz+QI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@json-render%2fnext@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236421},"main":"./dist/index.js","name":"@json-render/next","_from":"file:/tmp/json-render-next-0.21.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"license":"Apache-2.0","scripts":{"dev":"tsup --watch","build":"rm -rf dist && tsup","typecheck":"tsc --noEmit","check-types":"tsc --noEmit"},"version":"0.21.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2da8e873-3b08-49ac-960c-dc024494a507"}},"homepage":"https://json-render.dev","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"_resolved":"/tmp/json-render-next-0.21.0.tgz","_integrity":"sha512-5W+vDI/Anlkac43nKpEnhhgGzwmLUlCGfC1AypBUeFwG9njXwjPE2KoipaobzJiXhMtFHkxgT9hReZ6xyJb0Hw==","repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"_npmVersion":"11.19.0","description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","directories":{},"maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@ctate.dev"}],"_nodeVersion":"24.20.0","dependencies":{"@json-render/core":"0.21.0","@json-render/react":"0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"16.2.1","tsup":"^8.0.2","typescript":"^5.4.5","@types/react":"19.2.14","@internal/typescript-config":"0.0.0"},"peerDependencies":{"next":"^16.2.0","react":"^19.2.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/next_0.21.0_1789757589414_0.16881816531856142"}}},"time":{"created":"2026-03-27T23:14:57.036Z","modified":"2026-09-18T18:53:09.809Z","0.15.0":"2026-03-27T23:14:57.292Z","0.16.0":"2026-03-28T01:21:55.637Z","0.17.0":"2026-04-11T03:41:31.740Z","0.18.0":"2026-04-17T19:46:36.498Z","0.19.0":"2026-05-07T05:24:12.846Z","0.20.0":"2026-08-16T13:54:37.047Z","0.21.0":"2026-09-18T18:53:09.499Z"},"bugs":{"url":"https://github.com/vercel-labs/json-render/issues"},"license":"Apache-2.0","homepage":"https://json-render.dev","keywords":["json","ui","next","nextjs","ai","generative-ui","llm","renderer","streaming","ssr","pages","routing"],"repository":{"url":"git+https://github.com/vercel-labs/json-render.git","type":"git","directory":"packages/next"},"description":"Next.js renderer for @json-render/core. JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.","maintainers":[{"name":"matt.straka","email":"matt.j.straka@gmail.com"},{"name":"vercel-release-bot","email":"infra+release@vercel.com"},{"name":"ctate","email":"chris@ctate.dev"}],"readme":"# @json-render/next\n\nNext.js renderer for [@json-render/core](https://json-render.dev). JSON becomes full Next.js applications with routes, layouts, metadata, and SSR.\n\n## Installation\n\n```bash\nnpm install @json-render/core @json-render/react @json-render/next\n```\n\n## Quick Start\n\n### 1. Define your application spec\n\n```typescript\nimport type { NextAppSpec } from \"@json-render/next\";\n\nconst spec: NextAppSpec = {\n  metadata: {\n    title: { default: \"My App\", template: \"%s | My App\" },\n  },\n  layouts: {\n    main: {\n      root: \"shell\",\n      elements: {\n        shell: { type: \"Container\", props: {}, children: [\"nav\", \"slot\"] },\n        nav: { type: \"NavBar\", props: {}, children: [] },\n        slot: { type: \"Slot\", props: {}, children: [] },\n      },\n    },\n  },\n  routes: {\n    \"/\": {\n      layout: \"main\",\n      metadata: { title: \"Home\" },\n      page: { root: \"hero\", elements: { hero: { type: \"Card\", props: { title: \"Welcome\" }, children: [] } } },\n    },\n    \"/about\": {\n      layout: \"main\",\n      metadata: { title: \"About\" },\n      page: { root: \"content\", elements: { content: { type: \"Card\", props: { title: \"About\" }, children: [] } } },\n    },\n  },\n};\n```\n\n### 2. Create the app\n\n```typescript\n// lib/app.ts\nimport { createNextApp } from \"@json-render/next/server\";\n\nexport const { Page, generateMetadata, generateStaticParams } = createNextApp({ spec });\n```\n\n### 3. Wire up Next.js routes\n\n```tsx\n// app/[[...slug]]/page.tsx\nexport { Page as default, generateMetadata, generateStaticParams } from \"@/lib/app\";\n```\n\n```tsx\n// app/[[...slug]]/layout.tsx\nimport { NextAppProvider } from \"@json-render/next\";\nimport { registry, handlers } from \"@/lib/registry\";\n\nexport default function Layout({ children }: { children: React.ReactNode }) {\n  return (\n    <html lang=\"en\">\n      <body>\n        <NextAppProvider registry={registry} handlers={handlers}>\n          {children}\n        </NextAppProvider>\n      </body>\n    </html>\n  );\n}\n```\n\n## Features\n\n- **Pages as spec** -- Define entire multi-page apps in JSON\n- **Route matching** -- Dynamic segments (`[slug]`), catch-all (`[...path]`), optional catch-all (`[[...path]]`)\n- **Nested layouts** -- Reusable layouts with `Slot` component for content injection\n- **SEO metadata** -- Per-route metadata with title templates, OpenGraph, Twitter cards\n- **SSR** -- Server-side rendering via Next.js App Router\n- **Data loaders** -- Server-side async data loading before page render\n- **Static generation** -- `generateStaticParams` for pre-rendering\n- **Client navigation** -- Built-in `Link` component wrapping `next/link`\n- **Error/Loading/NotFound** -- Per-route error boundaries, loading states, and 404 pages\n- **AI streaming** -- Generate entire apps with JSONL patches via `SpecStream`\n\n## Entry Points\n\n| Import                     | Description                                      |\n| -------------------------- | ------------------------------------------------ |\n| `@json-render/next`        | Client components (NextAppProvider, PageRenderer) |\n| `@json-render/next/server` | Server utilities (createNextApp, matchRoute)      |\n\n## Documentation\n\nSee the [json-render documentation](https://json-render.dev/docs/api/next) for full API reference.\n","readmeFilename":"README.md"}