Source: https://seerepo.com/r/GitbookIO/gitbook/built
Markdown source: https://seerepo.com/r/GitbookIO/gitbook/built.md
Description: gitbook is a TypeScript repo built with React and Next.js. It stores its data in quick-lru and signs people in with jwt-decode and jsonwebtoken.

# What is gitbook built with?

gitbook is a TypeScript repo built with React and Next.js. It stores its data in quick-lru, signs people in with jwt-decode and jsonwebtoken, uses AI through ai and Vercel, makes its content with shiki, mdast-util-to-markdown, feed, image-size, mdast-util-from-markdown, and 15 more, validates its data with Zod, zod-to-json-schema, and Scalar, is tested with @playwright/test and @argos-ci/playwright, deploys with @opennextjs/cloudflare, and uses MCP. It has 119,716 written lines, with 135 test files.

Read on November 8, 2026, at commit 09a8310.

Repository: https://github.com/GitbookIO/gitbook

## Support (packages/cache-tags)

### Tools

- **assert-never**: 1 file

## Frontend (packages/embed)

### The base

- **[React](https://seerepo.com/uses/react)**: 3 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

## Support (packages/expr)

### Tools

- **acorn**: 7 files
- **acorn-loose**: 2 files
- **acorn-walk**: 1 file
- **assert-never**: 1 file
- **escodegen**: 1 file

## Frontend (packages/gitbook)

### The base

- **[React](https://seerepo.com/uses/react)**: 183 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 90 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[next-themes](https://seerepo.com/uses/next-themes)**: 4 files
- **[classnames](https://seerepo.com/uses/classnames)**: 1 file
- **[PostCSS](https://seerepo.com/uses/postcss)**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[motion](https://seerepo.com/uses/motion)**: 13 files
- **[Base UI](https://seerepo.com/uses/base-ui)**: 9 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 3 files
- **[usehooks-ts](https://seerepo.com/uses/usehooks-ts)**: 3 files
- **@panzoom/panzoom**: 2 files
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file

## Backend (packages/gitbook)

### Data

- **quick-lru**: 2 files

### Sign-in

- **[jwt-decode](https://seerepo.com/uses/jwt-decode)**: 3 files
- **[jsonwebtoken](https://seerepo.com/uses/jsonwebtoken)**: 2 files

### AI

- **[ai](https://seerepo.com/uses/ai)**: 3 files
- **[Vercel](https://seerepo.com/uses/vercel)**: 2 files

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 3 files · [packages/gitbook/src/components/WebMCP/WebMCP.tsx, line 38](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/src/components/WebMCP/WebMCP.tsx#L38)

## Support (packages/gitbook)

### Content

- **[shiki](https://seerepo.com/uses/shiki)**: 4 files
- **mdast-util-to-markdown**: 2 files
- **feed**: 1 file
- **[image-size](https://seerepo.com/uses/image-size)**: 1 file
- **[mdast-util-from-markdown](https://seerepo.com/uses/mdast-util-from-markdown)**: 1 file
- **mdast-util-frontmatter**: 1 file
- **[mdast-util-gfm](https://seerepo.com/uses/mdast-util-gfm)**: 1 file
- **micromark-extension-gfm**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 1 file
- **[rehype-stringify](https://seerepo.com/uses/rehype-stringify)**: 1 file
- **[remark](https://seerepo.com/uses/remark)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[remark-parse](https://seerepo.com/uses/remark-parse)**: 1 file
- **rss-parser**: 1 file
- **[unified](https://seerepo.com/uses/unified)**: 1 file
- **unist-util-remove**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 9 files
- **[zod-to-json-schema](https://seerepo.com/uses/zod-to-json-schema)**: 5 files

### Testing

- **@playwright/test**: 7 files
- **@argos-ci/playwright**: 2 files

### Deploy

- **@opennextjs/cloudflare**: 6 files

### Tools

- **assert-never**: 33 files
- **ts-essentials**: 10 files
- **[Cloudflare](https://seerepo.com/uses/cloudflare)**: 1 file
- **stylelint**: 1 file

### Other

- **zustand**: 8 files
- **server-only**: 7 files
- **memoizee**: 3 files
- **p-map**: 3 files
- **rison**: 3 files
- **leven**: 2 files
- **nuqs**: 2 files
- **deepmerge**: 1 file
- **diff**: 1 file
- **direction**: 1 file
- **flexsearch**: 1 file
- **js-cookie**: 1 file
- **negotiator**: 1 file
- **object-hash**: 1 file
- **object-identity**: 1 file
- **p-retry**: 1 file
- **tldts**: 1 file
- **url-join**: 1 file
- **warn-once**: 1 file

## Frontend (packages/icons)

### The base

- **[React](https://seerepo.com/uses/react)**: 2 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

### Icons

- **[Font Awesome](https://seerepo.com/uses/font-awesome)**: 1 file

## Support (packages/openapi-parser)

### Validation

- **[Scalar](https://seerepo.com/uses/scalar)**: 7 files

## Frontend (packages/react-contentkit)

### The base

- **[React](https://seerepo.com/uses/react)**: 15 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 8 files

## Frontend (packages/react-math)

### The base

- **[React](https://seerepo.com/uses/react)**: 4 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

## Support (packages/react-math)

### Content

- **[katex](https://seerepo.com/uses/katex)**: 2 files

## Frontend (packages/react-openapi)

### The base

- **[React](https://seerepo.com/uses/react)**: 15 files · [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 15 files

### Interface

- **[Base UI](https://seerepo.com/uses/base-ui)**: 3 files
- **[usehooks-ts](https://seerepo.com/uses/usehooks-ts)**: 1 file

## Support (packages/react-openapi)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 2 files

### Other

- **zustand**: 5 files
- **flatted**: 2 files

## Other repos with a similar stack

- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Next.js, MCP, Tailwind CSS, next-themes, motion, Mermaid, ai, Vercel, shiki, mdast-util-to-markdown, mdast-util-from-markdown, mdast-util-gfm, micromark-extension-gfm, remark, remark-gfm, remark-parse, unified, unist-util-visit, Zod, js-yaml · [Compare](https://seerepo.com/compare/GitbookIO/gitbook/vs/supabase/supabase)
- [cline/cline](https://seerepo.com/r/cline/cline/built): React, MCP, Tailwind CSS, next-themes, tailwind-merge, motion, Base UI, Mermaid, jwt-decode, ai, shiki, image-size, remark-gfm, unified, unist-util-visit, Zod, js-yaml · [Compare](https://seerepo.com/compare/cline/cline/vs/GitbookIO/gitbook)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): React, Next.js, Tailwind CSS, next-themes, PostCSS, tailwind-merge, motion, Base UI, Mermaid, shiki, mdast-util-from-markdown, rehype-raw, rehype-sanitize, remark-gfm, unist-util-visit, Zod, katex · [Compare](https://seerepo.com/compare/GitbookIO/gitbook/vs/multica-ai/multica)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, quick-lru, MCP, Tailwind CSS, PostCSS, tailwind-merge, motion, react-hotkeys-hook, ai, mdast-util-from-markdown, rehype-stringify, remark-gfm, remark-parse, unified, unist-util-visit, Zod, katex · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/GitbookIO/gitbook)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Next.js, Tailwind CSS, next-themes, PostCSS, tailwind-merge, motion, ai, shiki, mdast-util-from-markdown, mdast-util-gfm, micromark-extension-gfm, remark-gfm, Zod, katex · [Compare](https://seerepo.com/compare/GitbookIO/gitbook/vs/Significant-Gravitas/AutoGPT)
- [bytedance/deer-flow](https://seerepo.com/r/bytedance/deer-flow/built): React, Next.js, Tailwind CSS, next-themes, tailwind-merge, motion, ai, shiki, rehype-raw, rehype-sanitize, remark-gfm, unist-util-visit, Zod, katex · [Compare](https://seerepo.com/compare/bytedance/deer-flow/vs/GitbookIO/gitbook)

## Frequently asked questions

### What language is gitbook written in?

gitbook is written in TypeScript, with 119,716 written lines.

### What framework does gitbook use?

gitbook is built with React and Next.js.

The proof: [in packages/gitbook/package.json](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/package.json)

### What database does gitbook use?

gitbook stores its data in quick-lru.

### What does gitbook sign people in with?

gitbook signs people in with jwt-decode and jsonwebtoken.

### Does gitbook use AI?

Yes. gitbook uses AI through ai and Vercel.

### What services does gitbook use?

gitbook uses MCP.

The proof: [packages/gitbook/src/components/WebMCP/WebMCP.tsx, line 38](https://github.com/GitbookIO/gitbook/blob/09a8310c9da7cbdd28edef3852fe8c49da105640/packages/gitbook/src/components/WebMCP/WebMCP.tsx#L38)

### Does gitbook have tests?

Yes. gitbook has 135 test files and is tested with @playwright/test and @argos-ci/playwright.

### Which repos have a stack like gitbook's?

The ones that share most of its stack: supabase/supabase, cline/cline, and multica-ai/multica.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
