* Migrate docs site to package-based Geistdocs architecture
Replace the vendored Geistdocs template in apps/website with the
published @vercel/geistdocs package. The package now owns the shared
runtime (layout, docs renderer, search, Ask AI chat, markdown routes,
proxy, and MDX components) while the app keeps thin user-owned
adapters.
- Add @vercel/geistdocs 1.7.2 and bump Next.js to 16.2.6 (exact peer)
- Delete ~50 vendored runtime files (components/geistdocs, hooks,
custom chat UI, search/chat route implementations, feedback action)
- Replace routes with package factories: createDocsPage,
createChatRoute, createSearchRoute, createLlmsRoute,
createDocsMarkdownRoute, createSitemapMarkdownRoute, createProxy
- AI chat now uses the package-owned Ask AI (AI SDK v6 via the package)
- Adopt the package geistdocs.css theme with @source entries for the
geistdocs and streamdown dists; add a compat token layer in
global.css for user-owned components
- Add new /agents.md and /.well-known/mcp.json agent-readiness routes
with Streamdown agent metadata in geistdocs.tsx
- Keep the landing page, playground, KaTeX/Mermaid MDX pipeline,
redirects, and workspace streamdown live demos intact
- Prune dependencies now owned by the package (dexie, @orama/tokenizers,
ai, @ai-sdk/react, etc.) and unused shadcn components
* Polish homepage and migrate UI components to @vercel/geistdocs
- Homepage background set to bg-background-200 (incl. body/overscroll)
- Disable smooth-scroll animation on page navigation
- Replace hero install button with For humans / For agents CommandPrompt
- Remove hero "Read the docs" button
- Remove "Powering AI experiences for" logo strip and assets
- Remove homepage section gridlines/dividers
- Homepage titles at font-weight 450
- Navbar border hidden at top, revealed on scroll (homepage only)
- "Get started" code block uses Geist Shiki theme at 13px
- Feature links restyled black + underlined (was blue)
- Migrate Button/Badge/Input/Textarea/Popover to @vercel/geistdocs; delete local copies
- Remove dead installer + input-group components
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Plugin trial
* Update docs and tests
* Update homepage add new section
* Update usage.tsx
* Split out CJK plugin
* Extract plugins into new packages
* Misc fixes
* Fix lint / formatting
* Fix: The Streamdown component's memo comparison doesn't compare the plugins prop, preventing re-renders when plugins change while other props stay the same
Co-authored-by: haydenbleasel <hello@haydenbleasel.com>
* Fix: TypeScript type mismatch at line 89 in `index.ts`: the visitor function's `index` parameter is typed as `number | undefined`, but the `visit` function expects `number | null`. The `undefined` type is not assignable to `number | null`.
This commit fixes the issue reported at /vercel/path0/packages/streamdown-cjk/index.ts:89
## TypeScript type incompatibility in visitor callback
**What fails:** TypeScript compiler fails during DTS (type definitions) build in `packages/streamdown-cjk/index.ts` at line 89
**How to reproduce:**
```bash
cd packages/streamdown-cjk
pnpm build
```
**Result:**
```
index.ts(89,3): error TS2769: No overload matches this call.
Overload 1 of 2, '(tree: Root, check: "link", visitor: BuildVisitor<Root, "link">, reverse?: boolean | null | undefined): undefined', gave the following error.
Argument of type '(node: Link, index: number | null, parent?: Parent) => number | undefined' is not assignable to parameter of type 'BuildVisitor<Root, "link">'.
Types of parameters 'index' and 'index' are incompatible.
Type 'number | undefined' is not assignable to type 'number | null'.
Type 'undefined' is not assignable to type 'number | null'.
```
**Root cause:** The visitor callback function passed to the `visit()` function from `unist-util-visit` was declaring the `index` parameter as `number | null`, but the visitor can also receive `undefined` as the index value. The `BuildVisitor` type signature expects the callback to accept `number | null | undefined` to properly match the library's API.
**Fix:** Updated the `index` parameter type annotation on line 89 from `number | null` to `number | null | undefined` to match the actual possible values that the visitor receives and the expected `BuildVisitor` type signature.
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: haydenbleasel <hello@haydenbleasel.com>
* Fix tests
* Remove CDN paths
* Fix tests
* More cleanup
* Remove shiki from main bundle
* Update index.ts
* Cleanup test repo
* Cleanup website
* Delete next-env files
* Update .gitignore
* Fix lockfile
* Upgrade Next and React
* Simplify themes
* Update test site
* Misc fixes
* Type fixes
* Create perky-cobras-punch.md
---------
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>