Source: https://seerepo.com/r/langbot-app/LangBot/built
Markdown source: https://seerepo.com/r/langbot-app/LangBot/built.md
Description: LangBot is a Python repo built with quart, AIOHTTP, React, react-router-dom, and Vite. It stores its data in Postgres and chromadb.

# What is LangBot built with?

LangBot is a Python repo built with quart, AIOHTTP, React, react-router-dom, and Vite. It stores its data in Postgres and chromadb, reaches it with sqlmodel, SQLAlchemy, and alembic, signs people in with argon2-cffi, cryptography, pyjwt, and @simplewebauthn/browser, uses AI through LangChain, langsmith, Ollama, tavily-python, tiktoken, and 4 more, makes its content with ebooklib, html2text, mako, pypdf, python-docx, and 14 more, validates its data with Pydantic, @hookform/resolvers, and Zod, is tested with Pytest, pytest-asyncio, and @playwright/test, deploys with boto3, botocore, colorlog, and psutil, and uses aiosqlite, async-lru, asyncpg, pgvector, pymilvus, and 2 more. It has 640,677 written lines, with 850 test files.

Read on November 6, 2026, at commit 759ab65.

Repository: https://github.com/langbot-app/LangBot

## Backend (/)

### Data

- **[aiosqlite](https://seerepo.com/uses/aiosqlite)**
- **async-lru**
- **asyncpg**
- **pgvector**
- **[Postgres](https://seerepo.com/uses/postgres)**: 3 files · [src/langbot/pkg/persistence/tenant_uow.py, line 16](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/src/langbot/pkg/persistence/tenant_uow.py#L16)
- **[chromadb](https://seerepo.com/uses/chromadb)**: 2 files
- **pymilvus**: 1 file
- **[SQLite](https://seerepo.com/uses/sqlite)**: 1 file · [pyproject.toml, line 13](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/pyproject.toml#L13)

### Data access

- **sqlmodel**
- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 106 files
- **[alembic](https://seerepo.com/uses/alembic)**: 1 file

### Sign-in

- **argon2-cffi**
- **[cryptography](https://seerepo.com/uses/cryptography)**: 6 files
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 3 files

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**
- **langsmith**
- **[Ollama](https://seerepo.com/uses/ollama)**
- **tavily-python**
- **[tiktoken](https://seerepo.com/uses/tiktoken)**
- **[mcp](https://seerepo.com/uses/mcp)**: 3 files
- **dashscope**: 1 file
- **[litellm](https://seerepo.com/uses/litellm)**: 1 file

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 2 files · [plugins/misc/AIImagePlugin/main.py, line 30](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/plugins/misc/AIImagePlugin/main.py#L30)
- **Qdrant**: 1 file · [src/langbot/pkg/vector/vdbs/qdrant.py, line 5](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/src/langbot/pkg/vector/vdbs/qdrant.py#L5)

## Support (/)

### The base

- **quart**: 48 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 17 files

### Content

- **ebooklib**
- **html2text**
- **mako**
- **[pypdf](https://seerepo.com/uses/pypdf)**
- **[python-docx](https://seerepo.com/uses/python-docx)**
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 5 files
- **[pillow](https://seerepo.com/uses/pillow)**: 3 files
- **[qrcode](https://seerepo.com/uses/qrcode)**: 3 files
- **telegramify-markdown**: 3 files
- **[markdown](https://seerepo.com/uses/markdown)**: 2 files
- **[pymupdf](https://seerepo.com/uses/pymupdf)**: 1 file
- **pypdf2**: 1 file

### Validation

- **[Pydantic](https://seerepo.com/uses/pydantic)**: 64 files

### Testing

- **Pytest**: 539 files
- **pytest-asyncio**: 8 files

### Deploy

- **[boto3](https://seerepo.com/uses/boto3)**: 1 file
- **botocore**: 1 file
- **colorlog**: 1 file
- **[psutil](https://seerepo.com/uses/psutil)**: 1 file

### Tools

- **mypy**
- **pre-commit**
- **Ruff**
- **uv**
- **pip**: 2 files

### Other

- **certifi**
- **matrix-nio**
- **pandas**
- **pynacl**
- **python-multipart**
- **python-socks**
- **python-telegram-bot**
- **pyyaml**
- **tzdata**
- **urllib3**
- **httpx**: 49 files
- **websockets**: 10 files
- **aiocqhttp**: 9 files
- **lark-oapi**: 8 files
- **dingtalk-stream**: 6 files
- **pycryptodome**: 5 files
- **requests**: 5 files
- **aiofiles**: 4 files
- **chardet**: 2 files
- **quart-cors**: 2 files
- **regex**: 2 files
- **slack-sdk**: 1 file
- **xxhash**: 1 file

## Frontend (web)

### The base

- **[React](https://seerepo.com/uses/react)**: 205 files · [in web/package.json](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/web/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 44 files
- **[Vite](https://seerepo.com/uses/vite)**: 2 files · [in web/package.json](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/web/package.json)

### Styles

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

### Interface

- **[sonner](https://seerepo.com/uses/sonner)**: 63 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 29 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 19 files
- **react-photo-view**: 2 files
- **[recharts](https://seerepo.com/uses/recharts)**: 2 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 2 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 1 file
- **[input-otp](https://seerepo.com/uses/input-otp)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 150 files
- **@remixicon/react**: 2 files

## Backend (web)

### Sign-in

- **@simplewebauthn/browser**: 2 files

## Support (web)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 5 files
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 5 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 5 files
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 4 files
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 4 files
- **rehype-autolink-headings**: 3 files
- **rehype-slug**: 3 files
- **[qrcode](https://seerepo.com/uses/qrcode)**: 1 file

### Validation

- **[@hookform/resolvers](https://seerepo.com/uses/hookform-resolvers)**: 13 files
- **[Zod](https://seerepo.com/uses/zod)**: 13 files

### Testing

- **@playwright/test**: 64 files

### Tools

- **TypeScript**: 37 files

### Other

- **react-i18next**: 156 files
- **i18next**: 15 files
- **Lodash**: 2 files
- **Axios**: 1 file
- **clsx**: 1 file
- **i18next-browser-languagedetector**: 1 file

## Other repos with a similar stack

- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Postgres, OpenAI, AIOHTTP, React, SQLAlchemy, cryptography, pyjwt, Ollama, tavily-python, tiktoken, html2text, pypdf, python-docx, beautifulsoup4, pillow, Pydantic, boto3, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, sonner, Radix UI, React Hook Form, recharts, cmdk, react-markdown, rehype-highlight, remark-gfm, rehype-autolink-headings, rehype-slug, @hookform/resolvers, Zod · [Compare](https://seerepo.com/compare/langbot-app/LangBot/vs/Significant-Gravitas/AutoGPT)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): aiosqlite, async-lru, asyncpg, pgvector, chromadb, pymilvus, SQLite, OpenAI, AIOHTTP, SQLAlchemy, argon2-cffi, cryptography, pyjwt, LangChain, Ollama, tavily-python, tiktoken, MCP, dashscope, litellm, html2text, pypdf, beautifulsoup4, pillow, pymupdf, pypdf2, Pydantic, boto3, psutil · [Compare](https://seerepo.com/compare/langbot-app/LangBot/vs/run-llama/llama_index)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): Postgres, chromadb, OpenAI, AIOHTTP, React, Vite, Ollama, tiktoken, MCP, litellm, html2text, pypdf, python-docx, beautifulsoup4, pillow, markdown, pymupdf, pypdf2, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, recharts, Lucide, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/langbot-app/LangBot)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): aiosqlite, asyncpg, Postgres, chromadb, pymilvus, SQLite, OpenAI, Qdrant, AIOHTTP, React, react-router-dom, Vite, SQLAlchemy, alembic, tavily-python, tiktoken, MCP, pypdf, python-docx, beautifulsoup4, pillow, markdown, pymupdf, Pydantic, Tailwind CSS, react-markdown · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/langbot-app/LangBot)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): OpenAI, AIOHTTP, React, react-router-dom, Vite, SQLAlchemy, cryptography, pyjwt, LangChain, MCP, pypdf, pillow, Pydantic, boto3, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, cmdk, Lucide, react-markdown, remark-gfm, rehype-raw, rehype-sanitize · [Compare](https://seerepo.com/compare/langbot-app/LangBot/vs/langflow-ai/langflow)
- [vectorize-io/hindsight](https://seerepo.com/r/vectorize-io/hindsight/built): pgvector, Postgres, OpenAI, AIOHTTP, React, SQLAlchemy, alembic, cryptography, pyjwt, LangChain, MCP, litellm, pillow, Pydantic, Tailwind CSS, class-variance-authority, tailwind-merge, sonner, Radix UI, recharts, cmdk, Lucide, react-markdown, remark-gfm, Zod · [Compare](https://seerepo.com/compare/langbot-app/LangBot/vs/vectorize-io/hindsight)

## Frequently asked questions

### What language is LangBot written in?

LangBot is written in Python, with 640,677 written lines.

### What framework does LangBot use?

LangBot is built with quart, AIOHTTP, React, react-router-dom, and Vite.

### What database does LangBot use?

LangBot stores its data in Postgres and chromadb and reaches it with sqlmodel, SQLAlchemy, and alembic.

The proof: [src/langbot/pkg/persistence/tenant_uow.py, line 16](https://github.com/langbot-app/LangBot/blob/759ab65af2fd08349d58570d58543aa70b31bda8/src/langbot/pkg/persistence/tenant_uow.py#L16)

### What does LangBot sign people in with?

LangBot signs people in with argon2-cffi, cryptography, pyjwt, and @simplewebauthn/browser.

### Does LangBot use AI?

Yes. LangBot uses AI through LangChain, langsmith, Ollama, tavily-python, tiktoken, mcp, dashscope, litellm, and OpenAI.

### What services does LangBot use?

LangBot uses aiosqlite, async-lru, asyncpg, pgvector, pymilvus, SQLite, and Qdrant.

### Does LangBot have tests?

Yes. LangBot has 850 test files and is tested with Pytest, pytest-asyncio, and @playwright/test.

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

The ones that share most of its stack: Significant-Gravitas/AutoGPT, run-llama/llama_index, and bojieli/ai-agent-book.

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