Source: https://seerepo.com/r/labring/FastGPT/built
Markdown source: https://seerepo.com/r/labring/FastGPT/built.md
Description: FastGPT is a TypeScript repo built with axum, Tokio, React, Next.js, Vue, and 2 more.

# What is FastGPT built with?

FastGPT is a TypeScript repo built with axum, Tokio, React, Next.js, Vue, and 2 more. It stores its data in bullmq, MongoDB, @zilliz/milvus2-sdk-node, and Postgres, signs people in with jsonwebtoken, uses AI through OpenAI and gpt-tokenizer, makes its content with js-yaml, papaparse, @xmldom/xmldom, file-type, xlsx, and 24 more, validates its data with Zod, zod-openapi, @apidevtools/swagger-parser, Ajv, @t3-oss/env-core, and 1 more, is tested with Vitest and jsdom, deploys with tracing, tracing-subscriber, @langfuse/otel, @hono/node-server, and OpenTelemetry, and uses Redis, MinIO, MCP, ali-oss, aws-sdk, and 1 more. It has 927,455 written lines, with 1,502 test files.

Read on November 8, 2026, at commit d97ad85.

Repository: https://github.com/labring/FastGPT

## Backend (/)

### The base

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

### Sign-in

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

## Support (/)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 14 files

### Testing

- **Vitest**: 23 files

### Deploy

- **[tracing](https://seerepo.com/uses/tracing)**: 5 files
- **[tracing-subscriber](https://seerepo.com/uses/tracing-subscriber)**: 1 file

### Other

- **tokio-tungstenite**: 8 files
- **serde_json**: 6 files
- **futures-util**: 5 files
- **serde**: 4 files
- **thiserror**: 4 files
- **base64**: 3 files
- **reqwest**: 2 files
- **sha2**: 2 files
- **url**: 2 files
- **dotenvy**: 1 file
- **mime_guess**: 1 file
- **notify**: 1 file
- **notify-debouncer-full**: 1 file
- **portable-pty**: 1 file
- **tokio-util**: 1 file

## Backend (packages/dal)

### Data

- **[bullmq](https://seerepo.com/uses/bullmq)**: 7 files
- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [packages/dal/redis/runtime/connection.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/dal/redis/runtime/connection.ts#L1)

## Support (packages/dal)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 12 files

### Testing

- **Vitest**: 34 files

## Backend (packages/global)

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 2 files · [packages/global/core/ai/index.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/global/core/ai/index.ts#L1)

## Support (packages/global)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 223 files
- **zod-openapi**: 12 files
- **@apidevtools/swagger-parser**: 2 files
- **[Ajv](https://seerepo.com/uses/ajv)**: 1 file

### Testing

- **Vitest**: 179 files

### Tools

- **openapi-types**: 1 file

### Other

- **dayjs**: 3 files
- **Lodash**: 3 files
- **json5**: 2 files
- **nanoid**: 2 files
- **Axios**: 1 file
- **cron-parser**: 1 file
- **ipaddr.js**: 1 file
- **jschardet**: 1 file
- **timezones-list**: 1 file

## Frontend (packages/next)

### The base

- **[React](https://seerepo.com/uses/react)**: [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 3 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)

## Backend (packages/service)

### Data

- **[MongoDB](https://seerepo.com/uses/mongodb)**: 8 files · [packages/service/common/mongo/index.ts, line 11](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/mongo/index.ts#L11)
- **@zilliz/milvus2-sdk-node**: 5 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 5 files · [packages/service/common/vectorDB/opengauss/controller.ts, line 3](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/vectorDB/opengauss/controller.ts#L3)
- **[MinIO](https://seerepo.com/uses/minio)**: 1 file · [packages/service/common/s3/utils/assert.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/s3/utils/assert.ts#L1)

### Sign-in

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

### AI

- **gpt-tokenizer**: 1 file

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [packages/service/core/app/mcp.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/core/app/mcp.ts#L1)

## Support (packages/service)

### Content

- **[papaparse](https://seerepo.com/uses/papaparse)**: 6 files
- **[@xmldom/xmldom](https://seerepo.com/uses/xmldom-xmldom)**: 2 files
- **[file-type](https://seerepo.com/uses/file-type)**: 2 files
- **[xlsx](https://seerepo.com/uses/xlsx)**: 2 files
- **[Cheerio](https://seerepo.com/uses/cheerio)**: 1 file
- **joplin-turndown-plugin-gfm**: 1 file
- **[mammoth](https://seerepo.com/uses/mammoth)**: 1 file
- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 1 file
- **[turndown](https://seerepo.com/uses/turndown)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 42 files
- **@t3-oss/env-core**: 2 files
- **@apidevtools/json-schema-ref-parser**: 1 file

### Testing

- **Vitest**: 539 files

### Deploy

- **@langfuse/otel**: 1 file

### Tools

- **TypeScript**: 1 file

### Other

- **date-fns**: 17 files
- **Lodash**: 12 files
- **Axios**: 11 files
- **json5**: 9 files
- **form-data**: 6 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 6 files
- **dayjs**: 4 files
- **p-limit**: 3 files
- **yauzl**: 3 files
- **cookie**: 2 files
- **jszip**: 2 files
- **proxy-from-env**: 2 files
- **undici**: 2 files
- **@node-rs/jieba**: 1 file
- **iconv-lite**: 1 file
- **ipaddr.js**: 1 file
- **jsonpath-plus**: 1 file
- **jsonrepair**: 1 file
- **mime**: 1 file
- **mime-types**: 1 file
- **multer**: 1 file
- **node-cron**: 1 file
- **proxy-addr**: 1 file
- **proxy-agent**: 1 file
- **safe-regex**: 1 file

## Frontend (packages/web)

### The base

- **[React](https://seerepo.com/uses/react)**: 163 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 1 file · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)

### Interface

- **Chakra UI**: 106 files
- **[lexical](https://seerepo.com/uses/lexical)**: 25 files
- **[@monaco-editor/react](https://seerepo.com/uses/monaco-editor-react)**: 6 files
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 3 files
- **[recharts](https://seerepo.com/uses/recharts)**: 3 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 2 files
- **react-beautiful-dnd**: 2 files
- **react-photo-view**: 1 file

### Icons

- **@chakra-ui/icons**: 3 files

## Support (packages/web)

### Content

- **@lexical/markdown**: 1 file
- **[papaparse](https://seerepo.com/uses/papaparse)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **rehype-external-links**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Testing

- **Vitest**: 39 files

### Other

- **next-i18next**: 57 files
- **ahooks**: 9 files
- **Axios**: 3 files
- **date-fns**: 3 files
- **i18next**: 2 files
- **Lodash**: 2 files
- **react-i18next**: 2 files
- **use-context-selector**: 2 files
- **@fingerprintjs/fingerprintjs**: 1 file
- **js-cookie**: 1 file
- **[TanStack](https://seerepo.com/uses/tanstack)**: 1 file
- **zustand**: 1 file

## Support (packages/workflow-cli)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 16 files

### Testing

- **Vitest**: 8 files

## Support (packages/workflow-core)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 4 files

### Testing

- **Vitest**: 29 files

### Other

- **crypto-js**: 1 file

## Frontend (projects/app)

### The base

- **[React](https://seerepo.com/uses/react)**: 813 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 254 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 2 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **Chakra UI**: 702 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 130 files
- **[reactflow](https://seerepo.com/uses/reactflow)**: 69 files
- **[vaul](https://seerepo.com/uses/vaul)**: 4 files
- **@dnd-kit/core**: 2 files
- **[@monaco-editor/react](https://seerepo.com/uses/monaco-editor-react)**: 2 files
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 2 files
- **[react-textarea-autosize](https://seerepo.com/uses/react-textarea-autosize)**: 2 files
- **Scalar**: 2 files
- **[xterm](https://seerepo.com/uses/xterm)**: 2 files
- **[@dagrejs/dagre](https://seerepo.com/uses/dagrejs-dagre)**: 1 file
- **@tanstack/react-table**: 1 file
- **[echarts](https://seerepo.com/uses/echarts)**: 1 file
- **echarts-gl**: 1 file
- **[Framer](https://seerepo.com/uses/framer)**: 1 file
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file
- **[nprogress](https://seerepo.com/uses/nprogress)**: 1 file
- **[recharts](https://seerepo.com/uses/recharts)**: 1 file

### Icons

- **@chakra-ui/icons**: 25 files

## Backend (projects/app)

### Data

- **[MongoDB](https://seerepo.com/uses/mongodb)**: 12 files · [packages/service/common/mongo/index.ts, line 11](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/mongo/index.ts#L11)
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [packages/service/common/vectorDB/opengauss/controller.ts, line 3](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/vectorDB/opengauss/controller.ts#L3)

### Sign-in

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

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [packages/service/core/app/mcp.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/core/app/mcp.ts#L1)

## Support (projects/app)

### Content

- **[unified](https://seerepo.com/uses/unified)**: 4 files
- **[katex](https://seerepo.com/uses/katex)**: 3 files
- **[qrcode](https://seerepo.com/uses/qrcode)**: 2 files
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 2 files
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 2 files
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 2 files
- **[remark-breaks](https://seerepo.com/uses/remark-breaks)**: 2 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 2 files
- **[remark-math](https://seerepo.com/uses/remark-math)**: 2 files
- **hast-util-to-jsx-runtime**: 1 file
- **[marked](https://seerepo.com/uses/marked)**: 1 file
- **rehype-external-links**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[remark](https://seerepo.com/uses/remark)**: 1 file
- **[remark-parse](https://seerepo.com/uses/remark-parse)**: 1 file
- **remend**: 1 file
- **[vfile](https://seerepo.com/uses/vfile)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 17 files
- **@t3-oss/env-core**: 1 file

### Testing

- **Vitest**: 540 files
- **jsdom**: 85 files

### Other

- **next-i18next**: 418 files
- **use-context-selector**: 266 files
- **ahooks**: 114 files
- **dayjs**: 32 files
- **date-fns**: 21 files
- **Lodash**: 20 files
- **react-i18next**: 17 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 14 files
- **i18next**: 5 files
- **nanoid**: 4 files
- **archiver**: 2 files
- **Axios**: 2 files
- **json5**: 2 files
- **mime**: 2 files
- **jsondiffpatch**: 1 file
- **jszip**: 1 file

## Frontend (projects/code-sandbox)

### Interface

- **[matplotlib](https://seerepo.com/uses/matplotlib)**

## Support (projects/code-sandbox)

### The base

- **[Hono](https://seerepo.com/uses/hono)**: 1 file

### Content

- **[pillow](https://seerepo.com/uses/pillow)**

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 2 files
- **@t3-oss/env-core**: 1 file

### Testing

- **Vitest**: 23 files

### Deploy

- **[@hono/node-server](https://seerepo.com/uses/hono-node-server)**: 1 file

### Tools

- **acorn**: 1 file
- **acorn-walk**: 1 file

### Other

- **brotli**
- **NumPy**
- **pandas**
- **url**: 2 files
- **.ENV**: 1 file
- **golang.org/x/sys**: 1 file

## Frontend (projects/marketplace)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: 7 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)
- **[React](https://seerepo.com/uses/react)**: 3 files · [in packages/web/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/web/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **Chakra UI**: 4 files

## Backend (projects/marketplace)

### Data

- **[MongoDB](https://seerepo.com/uses/mongodb)**: 3 files · [packages/service/common/mongo/index.ts, line 11](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/mongo/index.ts#L11)

## Support (projects/marketplace)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 4 files
- **@t3-oss/env-core**: 1 file

### Testing

- **Vitest**: 12 files

### Other

- **next-i18next**: 5 files

## Backend (projects/mcp_server)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in projects/mcp_server/package.json](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/projects/mcp_server/package.json)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [packages/service/core/app/mcp.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/core/app/mcp.ts#L1)

## Support (projects/mcp_server)

### Validation

- **@t3-oss/env-core**: 1 file

### Other

- **.ENV**: 1 file

## Support (projects/volume-manager)

### The base

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

### Validation

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

### Testing

- **Vitest**: 3 files

### Deploy

- **[@hono/node-server](https://seerepo.com/uses/hono-node-server)**: 1 file

### Other

- **undici**: 2 files

## Support (sdk/otel)

### Testing

- **Vitest**: 3 files

### Deploy

- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 6 files

### Other

- **[@opentelemetry/api](https://seerepo.com/uses/opentelemetry-api)**: 3 files

## Support (sdk/sandbox-adapter)

### Testing

- **Vitest**: 12 files

## Backend (sdk/storage)

### Data

- **ali-oss**: 1 file
- **[aws-sdk](https://seerepo.com/uses/aws-sdk)**: 1 file
- **cos-nodejs-sdk-v5**: 1 file
- **[MinIO](https://seerepo.com/uses/minio)**: 1 file · [packages/service/common/s3/utils/assert.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/service/common/s3/utils/assert.ts#L1)

## Support (sdk/storage)

### Testing

- **Vitest**: 18 files

### Other

- **es-toolkit**: 4 files

## Other repos with a similar stack

- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): Redis, OpenAI, React, Postgres, MCP, Zod, Ajv, papaparse, xlsx, lexical, @monaco-editor/react, react-day-picker, recharts, React Hook Form, @lexical/markdown, react-markdown, remark-gfm, Tailwind CSS, react-syntax-highlighter, Mermaid, qrcode, rehype-katex, rehype-sanitize, remark-breaks, remark-math, rehype-raw, OpenTelemetry · [Compare](https://seerepo.com/compare/infiniflow/ragflow/vs/labring/FastGPT)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): OpenAI, React, Next.js, MCP, Zod, js-yaml, papaparse, Cheerio, lexical, react-day-picker, recharts, React Hook Form, react-markdown, remark-gfm, Tailwind CSS, vaul, react-syntax-highlighter, @dagrejs/dagre, Mermaid, unified, remark, remark-parse, vfile · [Compare](https://seerepo.com/compare/labring/FastGPT/vs/supabase/supabase)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): OpenAI, React, MCP, Zod, gpt-tokenizer, file-type, Cheerio, pdfjs-dist, turndown, react-day-picker, React Hook Form, remark-gfm, Tailwind CSS, vaul, @dagrejs/dagre, echarts, unified, katex, qrcode, remark-math, remark-parse · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/labring/FastGPT)
- [ruvnet/ruflo](https://seerepo.com/r/ruvnet/ruflo/built): Tokio, OpenAI, React, MongoDB, Postgres, MCP, Express, tracing, Zod, js-yaml, Ajv, file-type, react-day-picker, recharts, React Hook Form, Tailwind CSS, reactflow, vaul, katex, marked · [Compare](https://seerepo.com/compare/labring/FastGPT/vs/ruvnet/ruflo)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): bullmq, Redis, OpenAI, React, Postgres, MCP, Express, aws-sdk, jsonwebtoken, Zod, papaparse, file-type, React Hook Form, react-markdown, remark-gfm, react-textarea-autosize, Scalar, @dagrejs/dagre, Framer, marked · [Compare](https://seerepo.com/compare/labring/FastGPT/vs/twentyhq/twenty)
- [aaif-goose/goose](https://seerepo.com/r/aaif-goose/goose/built): axum, Tokio, React, MCP, Express, tracing, tracing-subscriber, Zod, turndown, react-markdown, remark-gfm, Tailwind CSS, react-syntax-highlighter, Framer, katex, qrcode, rehype-katex, remark-breaks, remark-math, OpenTelemetry · [Compare](https://seerepo.com/compare/aaif-goose/goose/vs/labring/FastGPT)

## Frequently asked questions

### What language is FastGPT written in?

FastGPT is written in TypeScript, with 927,455 written lines.

### What framework does FastGPT use?

FastGPT is built with axum, Tokio, React, Next.js, Vue, Hono, and Express.

### What database does FastGPT use?

FastGPT stores its data in bullmq, MongoDB, @zilliz/milvus2-sdk-node, and Postgres.

### What does FastGPT sign people in with?

FastGPT signs people in with jsonwebtoken.

### Does FastGPT use AI?

Yes. FastGPT uses AI through OpenAI and gpt-tokenizer.

The proof: [packages/global/core/ai/index.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/global/core/ai/index.ts#L1)

### What services does FastGPT use?

FastGPT uses Redis, MinIO, MCP, ali-oss, aws-sdk, and cos-nodejs-sdk-v5.

The proof: [packages/dal/redis/runtime/connection.ts, line 1](https://github.com/labring/FastGPT/blob/d97ad85e5107f63beb847cb9408e44d05814e783/packages/dal/redis/runtime/connection.ts#L1)

### Does FastGPT have tests?

Yes. FastGPT has 1,502 test files and is tested with Vitest and jsdom.

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

The ones that share most of its stack: infiniflow/ragflow, supabase/supabase, and CherryHQ/cherry-studio.

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