turbo
5517bb24 - docs: Migrate docs site to @vercel/geistdocs package (#13320)

Commit
3 days ago
docs: Migrate docs site to @vercel/geistdocs package (#13320) ## Description Migrates `apps/docs` from locally-vendored geistdocs components to the published [`@vercel/geistdocs`](https://www.npmjs.com/package/@vercel/geistdocs) package (1.8.2), following the [official migration guide](https://preview.geistdocs.com/docs/migration). Site-specific content, routes, and product UI stay local as thin package-backed adapters. **~127 files, +2.2k/−14.4k lines** (net −12.2k). ### Adopted from the package - Docs page via `createDocsPage` (MobileDocsBar, page actions, built-in feedback with `siteId: "turborepo"`) - Docs/home layouts, provider (search dialog, Ask AI shell, toaster), OSS-variant navbar - Search + Ask AI chat routes (AI SDK v6; optional `GEISTDOCS_CHAT_PROXY_URL` proxy mode) - Markdown surfaces: per-page `llms.mdx`, `sitemap.md`, **new `agents.md`** (with a new agent-readiness config in `geistdocs.tsx`) - `createProxy`: markdown negotiation, `.md` URL rewrites, **new AI-agent UA rewrites**, md-tracking aligned to the package event shape - MDX component defaults + design tokens via package `styles.css` - GitHub edit links now point at the monorepo path (`apps/docs/content/docs/{path}`) ### Kept custom (deliberate deviations) - **Curated `/llms.txt` index + `/llms-full.txt`** — the package route is a full corpus, which would change the public contract - **HMAC-signed OG images** (injected via the `metadata` callback), OG routes, rss/feed.xml, robots, Redis crawler sitemap, binaries/version + remote-cache APIs - **Four-column footer** (Fides "Cookie Preferences" link; the package footer is a slim bar without link sections) - `VersionWarning` banner via the package `sidebarTop` slot; `RemoteCacheCounter` moved from TOC header to page-action extras (no TOC-header hook exists) - `PackageManagerTabs`, reactflow diagram system, heading-badge rehype pipeline, shiki notation transformers - Blog / showcase / homepage / devtools / extra / openapi sections unchanged ### Version alignment - `next` 16.2.9 → **16.2.6** (the package peer-pins next exactly) - `fumadocs-core`/`ui` → **16.2.2**, `fumadocs-mdx` → **14.0.4** (package pins) - `fumadocs-openapi` → **10.2.7** (10.3+ peers fumadocs ^16.5, incompatible) - Removed ~20 dependencies owned by deleted vendored code (`ai@5`, `@ai-sdk/react@2`, dexie, jotai, streamdown, cmdk, vaul, recharts, …) ### Repo-level change - **`.npmrc`: added `hoist-pattern[]=tailwindcss`** — this repo's explicit hoist list disables pnpm's default hoisting, which broke the package CSS's internal `@import "tailwindcss"` resolution. ### Palette translation The package remaps Tailwind's default `gray`/`blue`/`red`/`green`/… scales to Geist `--ds-*` tokens (much lighter at the same step). Site components written against Tailwind defaults (blog back-link/dates, version banner, devtools error banner, green file trees) were translated to the equivalent Geist steps; `dark:` variants dropped since Geist tokens are theme-aware. ### Behavior changes to review - Ask AI: history no longer persisted in IndexedDB; the hand-rolled Upstash rate limiting on `/api/chat` is gone (package gateway route has none) - Navbar is the package OSS variant (Vercel OSS products dropdown; no Turborepo logo asset exists upstream yet) - Sidebar is the generic package renderer; shadcn radius scale shifted slightly to the package's fixed scale - Generated `agents.md` describes `/llms.txt` as a full-content surface, though this site keeps it as an index ## Testing Instructions ```sh cd apps/docs fnm use 24 rm -rf .next OG_IMAGE_SECRET=local-dev-secret pnpm dev ``` Verified locally (node 24): `check-types` (TS6), `check-openapi`, full `next build` + `next start`; curled `/docs`, `/docs.md`, `Accept: text/markdown` negotiation, agent-UA rewrite, `/llms.txt` (still the index), `/llms-full.txt`, `/sitemap.md`, `/agents.md`, search API, blog, showcase, terms, devtools, openapi; HTML greps confirm page actions, signed `og:image`, markdown alternates, edit-source URLs, and RemoteCacheCounter. `check-links` flags 2 pre-existing broken content links (zero content changes in this PR). --------- Co-authored-by: Anthony Shew <anthony.shew@vercel.com>
Author
Parents
Loading