What Bones

Fumadocs

Fumadocs for content, search, and navigation, used without its UI so every component on this site is Bones.

Why Fumadocs

Fumadocs handles search, navigation, and MDX for this site. It's the newest of the popular docs frameworks, it runs on Next.js like the other public sites, and it can be used without its UI.

The alternatives were Starlight (great defaults, but adds Astro to the repo), Docusaurus (proven, but heavy and hard to restyle), and VitePress (Vue).

Headless

Bones installs two packages and none of Fumadocs's components:

  • fumadocs-mdx compiles the MDX in docs/content/docs and reads each folder's meta.json.
  • fumadocs-core builds the page tree, the table of contents, the search index, and /llms.txt.

The header, sidebar, search dialog, table of contents, callouts, tabs, and copy buttons are Bones components in docs/components. They're styled from shared-ui/tokens.css, so the docs follow the same design system as the apps.

What's turned off

  • Syntax highlighting. Every Shiki theme colors code, and the palette is grayscale.
  • npm, pnpm, and Bun tabs. Bones uses Yarn only.

Callouts use remark-directive, so a note is :::note in the MDX.

Search runs in the reader's browser. The index is built into /search.json with the site, so there's no search service to run or pay for.

Used in