Source: https://seerepo.com/r/github/docs/built
Markdown source: https://seerepo.com/r/github/docs/built.md
Description: docs is a TypeScript repo built with React, Next.js, and Express. It stores its data in Elastic and quick-lru and signs people in with helmet.

# What is docs built with?

docs is a TypeScript repo built with React, Next.js, and Express. It stores its data in Elastic and quick-lru, signs people in with helmet, uses AI through gpt-tokenizer, connects to GitHub, makes its content with js-yaml, liquidjs, unist-util-visit, unified, unist-util-visit-parents, and 25 more, validates its data with Ajv, ajv-errors, and ajv-formats, is tested with Vitest, @playwright/test, nock, @axe-core/playwright, and mockdate, deploys with hot-shots and opentelemetry, and uses lowdb. It has 157,701 written lines, with 452 test files.

Read on November 5, 2026, at commit 58b7b56.

Repository: https://github.com/github/docs

## Frontend

### The base

- **[React](https://seerepo.com/uses/react)**: 110 files · [in package.json](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 80 files · [in package.json](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/package.json)

### Interface

- **lowlight**: 2 files
- **boxen**: 1 file
- **highlightjs-curl**: 1 file
- **[ora](https://seerepo.com/uses/ora)**: 1 file
- **pele**: 1 file

### Icons

- **@primer/octicons**: 5 files

## Backend

### The base

- **[Express](https://seerepo.com/uses/express)**: 108 files · [in package.json](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/package.json)

### Data

- **Elastic**: 3 files · [src/search/lib/get-elasticsearch-results/ai-search-autocomplete.ts, line 1](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/src/search/lib/get-elasticsearch-results/ai-search-autocomplete.ts#L1)
- **quick-lru**: 3 files
- **lowdb**: 1 file

### Sign-in

- **helmet**: 1 file

### AI

- **gpt-tokenizer**: 1 file

### Services

- **[GitHub](https://seerepo.com/uses/github)**: 4 files · [src/workflows/fr-add-docs-reviewers-requests.ts, line 1](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/src/workflows/fr-add-docs-reviewers-requests.ts#L1)

## Support

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 19 files
- **liquidjs**: 17 files
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 16 files
- **[unified](https://seerepo.com/uses/unified)**: 5 files
- **unist-util-visit-parents**: 5 files
- **hast-util-to-jsx-runtime**: 4 files
- **mdast-util-from-markdown**: 4 files
- **hast-util-to-string**: 3 files
- **[Cheerio](https://seerepo.com/uses/cheerio)**: 2 files
- **hast-util-from-html**: 2 files
- **[highlight.js](https://seerepo.com/uses/highlightjs)**: 2 files
- **html-entities**: 2 files
- **mdast-util-to-markdown**: 2 files
- **parse5**: 2 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 2 files
- **file-type**: 1 file
- **is-svg**: 1 file
- **mdast-util-to-hast**: 1 file
- **mdast-util-to-string**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **rehype-highlight**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **rehype-slug**: 1 file
- **rehype-stringify**: 1 file
- **remark**: 1 file
- **remark-gemoji**: 1 file
- **[remark-parse](https://seerepo.com/uses/remark-parse)**: 1 file
- **remark-stringify**: 1 file
- **[sharp](https://seerepo.com/uses/sharp)**: 1 file
- **unist-util-find**: 1 file

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 5 files
- **ajv-errors**: 1 file
- **[ajv-formats](https://seerepo.com/uses/ajv-formats)**: 1 file

### Testing

- **Vitest**: 411 files
- **@playwright/test**: 5 files
- **nock**: 5 files
- **@axe-core/playwright**: 2 files
- **mockdate**: 1 file

### Deploy

- **hot-shots**: 1 file
- **opentelemetry**: 1 file

### Tools

- **commander**: 6 files
- **actions**: 4 files
- **slash**: 3 files
- **markdownlint**: 2 files
- **@github/markdownlint-github**: 1 file

### Other

- **clsx**: 55 files
- **Lodash**: 19 files
- **github-slugger**: 16 files
- **SemVer**: 4 files
- **.ENV**: 3 files
- **chalk**: 3 files
- **dayjs**: 2 files
- **SWR**: 2 files
- **cookie-parser**: 1 file
- **fastest-levenshtein**: 1 file
- **GraphQL**: 1 file
- **http-proxy-middleware**: 1 file
- **js-cookie**: 1 file
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file
- **strip-ansi**: 1 file

## Other repos with a similar stack

- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Next.js, js-yaml, unist-util-visit, unified, mdast-util-from-markdown, Cheerio, mdast-util-to-markdown, remark-gfm, mdast-util-to-string, react-markdown, remark, remark-parse · [Compare](https://seerepo.com/compare/github/docs/vs/supabase/supabase)
- [withastro/astro](https://seerepo.com/r/withastro/astro/built): React, Express, unist-util-visit, unified, unist-util-visit-parents, Cheerio, remark-gfm, rehype-raw, rehype-stringify, remark, remark-parse, sharp · [Compare](https://seerepo.com/compare/github/docs/vs/withastro/astro)
- [meta/docusaurus](https://seerepo.com/r/meta/docusaurus/built): React, js-yaml, unist-util-visit, unified, Cheerio, remark-gfm, mdast-util-to-string, rehype-raw, rehype-stringify, remark, sharp · [Compare](https://seerepo.com/compare/github/docs/vs/meta/docusaurus)
- [nocodb/nocodb](https://seerepo.com/r/nocodb/nocodb/built): React, Express, boxen, unified, html-entities, rehype-stringify, remark, remark-parse, sharp, Ajv, ajv-formats · [Compare](https://seerepo.com/compare/github/docs/vs/nocodb/nocodb)
- [makeplane/plane](https://seerepo.com/r/makeplane/plane/built): React, Express, lowlight, helmet, unified, highlight.js, remark-gfm, file-type, react-markdown, remark-stringify, sharp · [Compare](https://seerepo.com/compare/github/docs/vs/makeplane/plane)
- [cline/cline](https://seerepo.com/r/cline/cline/built): React, js-yaml, unist-util-visit, unified, Cheerio, remark-gfm, react-markdown, rehype-highlight, remark-stringify, opentelemetry · [Compare](https://seerepo.com/compare/cline/cline/vs/github/docs)

## Frequently asked questions

### What language is docs written in?

docs is written in TypeScript, with 157,701 written lines.

### What framework does docs use?

docs is built with React, Next.js, and Express.

The proof: [in package.json](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/package.json)

### What database does docs use?

docs stores its data in Elastic and quick-lru.

The proof: [src/search/lib/get-elasticsearch-results/ai-search-autocomplete.ts, line 1](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/src/search/lib/get-elasticsearch-results/ai-search-autocomplete.ts#L1)

### What does docs sign people in with?

docs signs people in with helmet.

### Does docs use AI?

Yes. docs uses AI through gpt-tokenizer.

### What services does docs use?

docs connects to GitHub and uses lowdb.

The proof: [src/workflows/fr-add-docs-reviewers-requests.ts, line 1](https://github.com/github/docs/blob/58b7b56aa507ad1269b9f8e9e89a172f0976c7ce/src/workflows/fr-add-docs-reviewers-requests.ts#L1)

### Does docs have tests?

Yes. docs has 452 test files and is tested with Vitest, @playwright/test, nock, @axe-core/playwright, and mockdate.

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

The ones that share most of its stack: supabase/supabase, withastro/astro, and meta/docusaurus.

## 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.
