{"_id":"@aischemagen/nextjs","_rev":"6-f752ee78f60bef3656cecd38335b1bf3","name":"@aischemagen/nextjs","dist-tags":{"latest":"0.7.0"},"versions":{"0.3.0":{"name":"@aischemagen/nextjs","version":"0.3.0","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"author":{"name":"Digital Storks Ltd"},"license":"MIT","_id":"@aischemagen/nextjs@0.3.0","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"homepage":"https://www.aischemagen.com/docs#nextjs-package","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"d55c346ff5883df1c45438849810ae18a3fecd15","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.3.0.tgz","fileCount":10,"integrity":"sha512-1HBvhQ6Z5iH5AMmdeFNKDJfYgI8lIY/f3OhXm72tcXL86u0UytgZgfN9Ej9V+9I7Y2peoLE7gvsrl4iG2jSztQ==","signatures":[{"sig":"MEYCIQCcMF8WoGmflsoZbl/eFMbnwTE7tI6fo0kaWxMz7PLWQQIhAOyz5/Nwc5ObnaArisMel71xzESt/wE/5JhlipaHgp+H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18727},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./middleware":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"03e0a0ba3c3a292ae591a948f6269f273ffff78a","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.3.0_1784106495838_0.38895541615115414","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aischemagen/nextjs","version":"0.3.1","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"author":{"name":"Digital Storks Ltd"},"license":"MIT","_id":"@aischemagen/nextjs@0.3.1","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"homepage":"https://www.aischemagen.com/docs#nextjs-package","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"e700e26eeacf8f6da19c28998823ce87642d600c","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.3.1.tgz","fileCount":10,"integrity":"sha512-IoPkFQu3Pi6weGalEWPpvKwEGollsCijbpJg4fQhgibaVipi4TrLqNsS1TYg3wkw2uBMvPMBT6Cfx5MqjqA1nw==","signatures":[{"sig":"MEQCIGxWd/UngULK7wpR8hmM74kNVhdOW+uJMTgN+0qL5IIYAiBZIFT/3twN0AWTJvL6ejO9T+eiCd+NedvFxOkAiFW1BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19407},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./middleware":{"types":"./dist/middleware.d.ts","default":"./dist/middleware.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"03e0a0ba3c3a292ae591a948f6269f273ffff78a","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.3.1_1784108153121_0.14067757927254787","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aischemagen/nextjs","version":"0.4.0","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"author":{"name":"Digital Storks Ltd"},"license":"MIT","_id":"@aischemagen/nextjs@0.4.0","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"homepage":"https://www.aischemagen.com/docs#nextjs-package","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"331b37892cf920c47406b89177b8a8bcde416995","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.4.0.tgz","fileCount":8,"integrity":"sha512-QZw8b1ijz1dAQ8UUWirbkfG3a7D6kJwnvyUVG0O4FvSvZnb1UZQtVIDm9LV8x2urQQ9c0AVFnlpm9+khvdR/uQ==","signatures":[{"sig":"MEYCIQDVZ+1NbvWCTabJw19wfZc1pPPtzu0QgdfA2s2B5636UwIhAOquOfPkgn2QxByrC0ighvemMKmWRzFIqXTwyJwfCh9o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16522},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"03e0a0ba3c3a292ae591a948f6269f273ffff78a","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.4.0_1784111214234_0.14309709817878558","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aischemagen/nextjs","version":"0.5.0","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"author":{"name":"Digital Storks Ltd"},"license":"MIT","_id":"@aischemagen/nextjs@0.5.0","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"homepage":"https://www.aischemagen.com/docs#nextjs-package","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"950bc350dbc478b3657b82a1fd6e5fbbec57efd7","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.5.0.tgz","fileCount":10,"integrity":"sha512-mOg0xdFFa14YdTUDK0cjLKilkt6c5j4yOZYP4YsP1Ko6jgDwCZ4bvSQydS1vbUiSAwpbxmTtdCw5Qm5Pem0rxg==","signatures":[{"sig":"MEUCIHk1cWA7IQqALYYrW7qu3ITxpTNJthl98hu/SiE+lFi/AiEAgq81lLIBYTljSIVbeXkou2t3DQyqnHIySOztzqDHdJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22741},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./content":{"types":"./dist/content.d.ts","default":"./dist/content.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"f62ba19ecc28df7f4d18a636b1bab0ae2d660283","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.5.0_1784806309027_0.4418809552884091","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@aischemagen/nextjs","version":"0.5.1","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"author":{"name":"Digital Storks Ltd"},"license":"MIT","_id":"@aischemagen/nextjs@0.5.1","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"homepage":"https://www.aischemagen.com/docs#nextjs-package","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"64f9dc9f9719e9deea6becc8cc90ba3220e7849f","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.5.1.tgz","fileCount":10,"integrity":"sha512-Bru5ulPfSMW7tiImBuJsU5AGgFSvshX8IVXlJVFyX/DN8BuhuWZMjOx/bSpsVGaae24DcjjgYl1ybCMV0yv2bg==","signatures":[{"sig":"MEUCICxmlveFFGL2xYJ2iOBNzHH9wtxStRXqA9uWT1hkg4rFAiEAhWrZQNQGD1AWxozRiwCcdt+AzSyYsrNBzKTjB124JT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23189},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./content":{"types":"./dist/content.d.ts","default":"./dist/content.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"a69dfe48e6f574230adb327e949fcec977bfe6bd","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.5.1_1785092745955_0.4127925170258311","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@aischemagen/nextjs@0.7.0","bin":{"aischemagen-nextjs":"dist/cli.js"},"dist":{"shasum":"ad732df2e045ed2d6626ecd3fbe09e25afe0c5bf","tarball":"https://registry.npmjs.org/@aischemagen/nextjs/-/nextjs-0.7.0.tgz","fileCount":12,"integrity":"sha512-DR/K+jdokRE51jrLmqEm7hEbT+VasWSpXJXxBMRq19aOpmv0sUmvlCWNqexaXQoNPBIzSQRxCjZLe65B5sVL+Q==","signatures":[{"sig":"MEQCIGuWMGX06wOJ4Ot9aJk3m5R5UxRI1ydwoGxgSFcR94kmAiBhwQA46Q/ZQbsOyJXQklg/TcZRvpBQGzHywSpUHO7hBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCCmDH9x6kF9/iIgzmFVE24HwI+xPveyM3E+mtTs9HBRQIhAKBIJm9Xdj3fONESS3sxltgvho2gfe10yzb4mYOEF+8c"}],"unpackedSize":29529},"main":"./dist/index.js","name":"@aischemagen/nextjs","type":"module","types":"./dist/index.d.ts","author":{"name":"Digital Storks Ltd"},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./content":{"types":"./dist/content.d.ts","default":"./dist/content.js"},"./llms-txt":{"types":"./dist/llms-txt.d.ts","default":"./dist/llms-txt.js"},"./revalidate":{"types":"./dist/revalidate.d.ts","default":"./dist/revalidate.js"}},"gitHead":"e1ac6e3fa12b44529b119161c74b29a43870d8e5","license":"MIT","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"version":"0.7.0","_npmUser":{"name":"aischemagen","email":"digitalstorks00@gmail.com"},"homepage":"https://www.aischemagen.com/docs#nextjs-package","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"_npmVersion":"10.9.3","description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","directories":{},"maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","react":"^19.0.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.0.0"},"peerDependencies":{"next":">=13.4.0","react":">=18.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nextjs_0.7.0_1788483522855_0.9645089593997864"}}},"time":{"created":"2026-07-15T09:08:15.684Z","modified":"2026-09-04T00:58:43.079Z","0.3.0":"2026-07-15T09:08:15.970Z","0.3.1":"2026-07-15T09:35:53.263Z","0.4.0":"2026-07-15T10:26:54.358Z","0.5.0":"2026-07-23T11:31:49.176Z","0.5.1":"2026-07-26T19:05:46.107Z","0.7.0":"2026-09-04T00:58:42.928Z"},"author":{"name":"Digital Storks Ltd"},"license":"MIT","homepage":"https://www.aischemagen.com/docs#nextjs-package","keywords":["nextjs","schema.org","json-ld","structured-data","seo","aeo","aischemagen"],"description":"Server-side Schema.org JSON-LD injection for Next.js sites, powered by AI Schema Gen. Renders structured data into the initial HTML so search engines and AI crawlers (GPTBot, ClaudeBot, PerplexityBot) see it without executing JavaScript.","maintainers":[{"name":"aischemagen","email":"digitalstorks00@gmail.com"}],"readme":"# @aischemagen/nextjs\n\nServer-side Schema.org JSON-LD injection for Next.js sites, powered by\n[AI Schema Gen](https://www.aischemagen.com).\n\nSchema you manage in the Manage Schemas dashboard renders as a real\n`<script type=\"application/ld+json\">` tag baked directly into the page. No\nclient-side JavaScript, so it's visible to crawlers that don't execute JS\n(GPTBot, ClaudeBot, PerplexityBot, Google-Extended), not just to Googlebot.\n\nThe `<AISchemaGen>` component also injects any head tags you turn on from the\ndashboard, from a small fixed set: a `<link rel=\"canonical\">` to the page's own\nURL, a site-wide `<meta name=\"robots\">`, and a `<meta name=\"description\">`.\nNext.js hoists these into `<head>` automatically. All are off by default, so a\nplain Next.js site keeps full control of its own `<head>` until you opt in.\n\nPages stay pre-built and instant, served the same way every time, exactly\nlike the WordPress plugin serves from its own local copy. A page is only\nrefreshed when its schema actually changes on the dashboard, not recomputed\non every visit.\n\n## Prerequisites\n\n- A Next.js site using the App Router (Next.js 13.4+), deployed somewhere\n  with a running server (Vercel, or any Node.js host, not a fully static\n  export with no server at all)\n- A site added under **Sites** in the AI Schema Gen dashboard, with a\n  **publish token** (Sites → your site → Get Code), or set up automatically\n  by the `setup_nextjs_schema` tool via the\n  [AI Schema Gen MCP server](https://www.npmjs.com/package/@aischemagen/mcp)\n\n## Install\n\n```bash\nnpm install @aischemagen/nextjs\n```\n\n## Setup\n\n**1. Add the revalidate route** — this is what lets dashboard changes go\nlive in seconds without a rebuild.\n\n```ts\n// app/api/aischemagen/revalidate/route.ts\nimport { createRevalidateHandler } from '@aischemagen/nextjs/revalidate';\n\nexport const POST = createRevalidateHandler(process.env.AISCHEMAGEN_PUBLISH_TOKEN!);\n```\n\n**2. Add the content route** — this is what lets bulk generation read your\npages' own content directly from your deployment in one request, instead of\nfetching each page's public URL individually (which several hosts'\nDDoS/bot protection can flag once a bulk job touches a dozen-plus pages back\nto back).\n\n```ts\n// app/api/aischemagen/content/route.ts\nimport { createContentHandler } from '@aischemagen/nextjs/content';\n\nexport const POST = createContentHandler(process.env.AISCHEMAGEN_PUBLISH_TOKEN!);\n```\n\n**3. Add the llms.txt route** (optional) — serves an `llms.txt` map of your\nsite for AI systems (your name, a one-line summary, and the pages worth\nreading), built from your Entity Profile and page list on the dashboard. It\ndoes not affect your readiness score. Skip this if you already serve your own\n`/llms.txt`.\n\n```ts\n// app/llms.txt/route.ts\nimport { createLlmsTxtHandler } from '@aischemagen/nextjs/llms-txt';\n\nexport const GET = createLlmsTxtHandler(process.env.AISCHEMAGEN_PUBLISH_TOKEN!);\n```\n\n**4. Set your publish token as an environment variable**, `AISCHEMAGEN_PUBLISH_TOKEN`\n(local `.env`, and your host's production env vars, e.g. Vercel → Settings →\nEnvironment Variables).\n\n**5. Add the component to each page that needs schema**, passing that exact\npage's own URL:\n\n```tsx\n// app/pricing/page.tsx\nimport { AISchemaGen } from '@aischemagen/nextjs';\n\nexport default function PricingPage() {\n  return (\n    <>\n      <AISchemaGen\n        publishToken={process.env.AISCHEMAGEN_PUBLISH_TOKEN!}\n        url=\"https://example.com/pricing\"\n      />\n      {/* page content */}\n    </>\n  );\n}\n```\n\nFor a page with a variable part in its address (a blog post, product page,\netc.), build the URL from that page's own params instead of a fixed string:\n\n```tsx\n// app/blog/[slug]/page.tsx\nexport default function BlogPost({ params }: { params: { slug: string } }) {\n  return (\n    <>\n      <AISchemaGen\n        publishToken={process.env.AISCHEMAGEN_PUBLISH_TOKEN!}\n        url={`https://example.com/blog/${params.slug}`}\n      />\n      {/* page content */}\n    </>\n  );\n}\n```\n\nThat's it. Deploy once, and from then on, add, edit, or remove schema on the\ndashboard exactly like you would for a WordPress site, the affected page\nrefreshes itself within seconds, automatically. Pages with no schema render\nnothing, no errors, no empty tags.\n\n**6. Verify the connection.** If you set this up through the AI Schema Gen MCP\nserver, run `setup_nextjs_schema` with `verify: true` after deploying — it\nchecks the revalidate route is live and marks the site connected. Otherwise the\nsite connects on its own the first time a page fetches its schema.\n\n## Why per-page, not once in the layout\n\nA shared layout has no reliable way to know which specific page is currently\nbeing viewed without forcing every page on the site to be rebuilt fresh on\nevery single visit, which is exactly what this package is designed to avoid.\nPassing the URL directly, on the one or two pages that actually need it,\nkeeps the rest of the site exactly as fast and cheap as it already is.\n\n## How it fits with the rest of AI Schema Gen\n\nGenerate and manage schema the same way you would for a WordPress site: from\nthe dashboard, via the API, or via the [MCP server](https://www.npmjs.com/package/@aischemagen/mcp)\nif you're driving it from an AI coding assistant. This package is only the\ndelivery mechanism, it doesn't generate anything itself.\n\n## About the publish token\n\nThe publish token is **not** your API key. It's a low-privilege, single-site\ncredential (the same idea as a Stripe *publishable* key), safe to store as a\nplain environment variable. It can fetch schema already generated for that\none site, trigger a refresh of that site's own already-known pages, and read\nthat site's own already-public page content back for bulk generation — it\ncan't generate new schema itself, spend quota, or read anything about your\naccount. Rotate it any time from Sites → your site if it ever needs to be\nrevoked.\n\n## Advanced: fully static-exported sites\n\nIf your site uses `output: 'export'` (pure static HTML, no running server at\nall), the revalidate route can't work, there's no live server to call. For\nthat case, pull all your schema down once per build instead:\n\n1. Set `AISCHEMAGEN_PUBLISH_TOKEN` and add `\"prebuild\": \"aischemagen-nextjs sync\"`\n   to `package.json`, this writes `.aischemagen/schema.generated.ts` on every\n   build (gitignore that folder).\n2. Pass it to each page: `<AISchemaGen publishToken=\"...\" url=\"...\" schemaData={schemaData} />`\n   (`import schemaData from '../../.aischemagen/schema.generated';`).\n3. Optionally set a **Deploy Hook URL** (Sites → your site → Get Code) from\n   your host (e.g. Vercel → Project Settings → Git → Deploy Hooks), so\n   dashboard changes trigger a fresh build automatically instead of only\n   showing up on your site's next unrelated deploy.\n","readmeFilename":"README.md"}