Source: https://seerepo.com/r/chatboxai/chatbox/built
Markdown source: https://seerepo.com/r/chatboxai/chatbox/built.md
Description: chatbox is a TypeScript repo built with React, TanStack, Vite, Electron, and @capacitor/core.

# What is chatbox built with?

chatbox is a TypeScript repo built with React, TanStack, Vite, Electron, and @capacitor/core. It stores its data in localforage, @capacitor-community/sqlite, @mastra/libsql, and SQLite, uses AI through ai, ai-sdk, cohere-ai, @mastra/core, ai-retry, and 4 more, watches its errors with Sentry, makes its content with linkedom, sanitize-filename, exceljs, pdfjs-dist, react-markdown, and 14 more, validates its data with Zod and @cfworker/json-schema, is tested with Vitest, Testing Library, fake-indexeddb, Faker, and jsdom, deploys with electron-log, and uses electron-store, store, MCP, and Perplexity. It has 383,291 written lines, with 762 test files.

Read on November 6, 2026, at commit d17455c.

Repository: https://github.com/chatboxai/chatbox

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 273 files · [in package.json](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/package.json)
- **[TanStack](https://seerepo.com/uses/tanstack)**: 65 files
- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in package.json](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/package.json)

### Styles

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

### Interface

- **Mantine**: 213 files
- **MUI**: 33 files
- **[sonner](https://seerepo.com/uses/sonner)**: 9 files
- **[vaul](https://seerepo.com/uses/vaul)**: 9 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 4 files
- **[react-virtuoso](https://seerepo.com/uses/react-virtuoso)**: 4 files
- **capacitor**: 3 files
- **photoswipe**: 3 files
- **[@floating-ui/dom](https://seerepo.com/uses/floating-ui-dom)**: 1 file
- **[canvas-confetti](https://seerepo.com/uses/canvas-confetti)**: 1 file
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 1 file
- **mark.js**: 1 file
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 1 file
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 1 file
- **react-zoom-pan-pinch**: 1 file

### Icons

- **@tabler/icons-react**: 150 files
- **[Lucide](https://seerepo.com/uses/lucide)**: 12 files
- **@mui/icons-material**: 10 files
- **@lobehub/icons**: 2 files

## Backend (/)

### Data

- **localforage**: 7 files
- **@capacitor-community/sqlite**: 4 files
- **@mastra/libsql**: 2 files
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [src/main/session-attachment-rag/db.ts, line 3](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/main/session-attachment-rag/db.ts#L3)
- **electron-store**: 1 file
- **store**: 1 file

### AI

- **[ai](https://seerepo.com/uses/ai)**: 65 files
- **[ai-sdk](https://seerepo.com/uses/ai-sdk)**: 18 files
- **cohere-ai**: 2 files
- **@mastra/core**: 1 file
- **ai-retry**: 1 file
- **js-tiktoken**: 1 file
- **OpenRouter**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 9 files · [src/shared/models/openai-compatible.ts, line 1](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/shared/models/openai-compatible.ts#L1)
- **[Sentry](https://seerepo.com/uses/sentry)**: 9 files · [src/main/adapters/sentry.ts, line 1](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/main/adapters/sentry.ts#L1)
- **[Anthropic](https://seerepo.com/uses/anthropic)**: 3 files · [src/shared/providers/definitions/models/chatboxai.ts, line 1](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/shared/providers/definitions/models/chatboxai.ts#L1)
- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [packages/chatbox-core/src/mcp/controller.ts, line 12](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/packages/chatbox-core/src/mcp/controller.ts#L12)
- **Perplexity**: 1 file · [src/shared/providers/definitions/models/perplexity.ts, line 1](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/shared/providers/definitions/models/perplexity.ts#L1)

## Support (/)

### The base

- **[Electron](https://seerepo.com/uses/electron)**: 38 files
- **@capacitor/core**: 9 files

### Content

- **linkedom**: 3 files
- **sanitize-filename**: 3 files
- **exceljs**: 2 files
- **[pdfjs-dist](https://seerepo.com/uses/pdfjs-dist)**: 2 files
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 2 files
- **@braintree/sanitize-url**: 1 file
- **@mozilla/readability**: 1 file
- **epub**: 1 file
- **[gray-matter](https://seerepo.com/uses/gray-matter)**: 1 file
- **officeparser**: 1 file
- **pptxgenjs**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[remark-breaks](https://seerepo.com/uses/remark-breaks)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file
- **[remark-math](https://seerepo.com/uses/remark-math)**: 1 file
- **[remark-parse](https://seerepo.com/uses/remark-parse)**: 1 file
- **[shiki](https://seerepo.com/uses/shiki)**: 1 file
- **[unified](https://seerepo.com/uses/unified)**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Validation

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

### Testing

- **Vitest**: 593 files
- **Testing Library**: 71 files
- **fake-indexeddb**: 19 files
- **Faker**: 1 file
- **jsdom**: 1 file

### Deploy

- **[electron-log](https://seerepo.com/uses/electron-log)**: 12 files

### Tools

- **@tanstack/router-plugin**: 1 file
- **@vitejs/plugin-react**: 1 file
- **electron-debug**: 1 file
- **TypeScript**: 1 file

### Other

- **react-i18next**: 206 files
- **clsx**: 40 files
- **jotai**: 37 files
- **uuid**: 35 files
- **Lodash**: 27 files
- **@tanstack/react-query**: 22 files
- **zustand**: 16 files
- **i18next**: 14 files
- **Capacitor**: 12 files
- **ofetch**: 9 files
- **dayjs**: 8 files
- **p-map**: 3 files
- **.ENV**: 2 files
- **chardet**: 2 files
- **core-js**: 2 files
- **diff**: 2 files
- **fs-extra**: 2 files
- **iconv-lite**: 2 files
- **capacitor-plugin-safe-area**: 1 file
- **compare-versions**: 1 file
- **copy-to-clipboard**: 1 file
- **electron-updater**: 1 file
- **fflate**: 1 file
- **js-base64**: 1 file
- **quickjs-emscripten-core**: 1 file
- **web-vitals**: 1 file

## Backend (packages/chatbox-core)

### AI

- **[ai](https://seerepo.com/uses/ai)**: 18 files
- **[ai-sdk](https://seerepo.com/uses/ai-sdk)**: 3 files

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [packages/chatbox-core/src/mcp/controller.ts, line 12](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/packages/chatbox-core/src/mcp/controller.ts#L12)

## Support (packages/chatbox-core)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 9 files
- **@cfworker/json-schema**: 1 file

### Testing

- **Vitest**: 141 files

### Other

- **uuid**: 7 files
- **deepmerge**: 3 files
- **abort-controller**: 2 files
- **@noble/hashes**: 1 file
- **emittery**: 1 file
- **fflate**: 1 file
- **Lodash**: 1 file

## Support (packages/chatbox-i18n)

### Testing

- **Vitest**: 1 file

## Frontend (packages/chatbox-react)

### The base

- **[React](https://seerepo.com/uses/react)**: 11 files · [in package.json](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/package.json)

## Support (packages/chatbox-react)

### Testing

- **Vitest**: 17 files
- **Testing Library**: 4 files

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 10 files
- **zustand**: 4 files
- **abort-controller**: 1 file
- **Immer**: 1 file

## Other repos with a similar stack

- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, TanStack, Vite, SQLite, electron-store, OpenAI, Sentry, Anthropic, MCP, Electron, Tailwind CSS, tailwind-merge, vaul, Radix UI, @floating-ui/dom, cmdk, dnd-kit, react-dropzone, react-hotkeys-hook, Lucide, ai, ai-sdk, OpenRouter, exceljs, pdfjs-dist, @mozilla/readability, gray-matter, officeparser, remark-gfm, remark-math, remark-parse, unified, unist-util-visit, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/CherryHQ/cherry-studio)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Vite, OpenAI, Sentry, MCP, Tailwind CSS, sonner, vaul, Radix UI, cmdk, dnd-kit, Mermaid, react-dropzone, Lucide, ai, react-markdown, gray-matter, remark-gfm, remark-parse, shiki, unified, unist-util-visit, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/supabase/supabase)
- [cline/cline](https://seerepo.com/r/cline/cline/built): React, Vite, SQLite, OpenAI, Anthropic, MCP, Tailwind CSS, tailwind-merge, sonner, Radix UI, react-virtuoso, cmdk, Mermaid, Lucide, ai, ai-sdk, exceljs, react-markdown, remark-gfm, shiki, unified, unist-util-visit, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/cline/cline)
- [janhq/jan](https://seerepo.com/r/janhq/jan/built): React, TanStack, Vite, SQLite, OpenAI, Tailwind CSS, tailwind-merge, sonner, vaul, Radix UI, dnd-kit, @tabler/icons-react, Lucide, ai, ai-sdk, react-markdown, rehype-katex, remark-gfm, remark-math, shiki, unist-util-visit, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/janhq/jan)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): React, TanStack, OpenAI, Electron, Tailwind CSS, tailwind-merge, sonner, react-virtuoso, @floating-ui/dom, cmdk, dnd-kit, Mermaid, react-markdown, rehype-katex, remark-breaks, remark-gfm, remark-math, shiki, unist-util-visit, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/multica-ai/multica)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, OpenAI, Sentry, Anthropic, Tailwind CSS, tailwind-merge, sonner, vaul, Radix UI, canvas-confetti, cmdk, ai, react-markdown, rehype-katex, remark-gfm, remark-math, shiki, Zod · [Compare](https://seerepo.com/compare/chatboxai/chatbox/vs/Significant-Gravitas/AutoGPT)

## Frequently asked questions

### What language is chatbox written in?

chatbox is written in TypeScript, with 383,291 written lines.

### What framework does chatbox use?

chatbox is built with React, TanStack, Vite, Electron, and @capacitor/core.

The proof: [in package.json](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/package.json)

### What database does chatbox use?

chatbox stores its data in localforage, @capacitor-community/sqlite, @mastra/libsql, and SQLite.

### Does chatbox use AI?

Yes. chatbox uses AI through ai, ai-sdk, cohere-ai, @mastra/core, ai-retry, js-tiktoken, OpenRouter, OpenAI, and Anthropic.

### What services does chatbox use?

chatbox watches its errors with Sentry and uses electron-store, store, MCP, and Perplexity.

The proof: [src/main/adapters/sentry.ts, line 1](https://github.com/chatboxai/chatbox/blob/d17455c5ca8fd3ff44385c6d4d2118599e4c970f/src/main/adapters/sentry.ts#L1)

### Does chatbox have tests?

Yes. chatbox has 762 test files and is tested with Vitest, Testing Library, fake-indexeddb, Faker, and jsdom.

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

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

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