Source: https://seerepo.com/r/Kanaries/pygwalker/built
Markdown source: https://seerepo.com/r/Kanaries/pygwalker/built.md
Description: pygwalker is a Python repo built with FastAPI, Vite, React, and @jupyterlab/application. It stores its data in pyarrow and DuckDB.

# What is pygwalker built with?

pygwalker is a Python repo built with FastAPI, Vite, React, and @jupyterlab/application. It stores its data in pyarrow and DuckDB, reaches it with sqlglot and SQLAlchemy, makes its content with jinja2 and html-to-image, validates its data with Pydantic, is tested with @playwright/test, and deploys with psutil. It has 22,385 written lines, with 37 test files.

Read on November 7, 2026, at commit d91e207.

Repository: https://github.com/Kanaries/pygwalker

## Frontend (/)

### Interface

- **[ipywidgets](https://seerepo.com/uses/ipywidgets)**: 3 files
- **anywidget**: 2 files

## Backend (/)

### The base

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

### Data

- **[pyarrow](https://seerepo.com/uses/pyarrow)**: 3 files
- **[DuckDB](https://seerepo.com/uses/duckdb)**: 2 files

### Data access

- **sqlglot**: 5 files
- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 1 file

## Support (/)

### Content

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

### Validation

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

### Deploy

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

### Tools

- **typing-extensions**: 20 files
- **ipython**: 3 files
- **packaging**: 2 files
- **astor**: 1 file

### Other

- **NumPy**
- **segment-analytics-python**
- **pandas**: 10 files
- **arrow**: 2 files
- **pytz**: 2 files
- **appdirs**: 1 file
- **cachetools**: 1 file
- **requests**: 1 file
- **traitlets**: 1 file

## Frontend (app)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in app/package.json](https://github.com/Kanaries/pygwalker/blob/d91e207d9d6aecefff2e84a5979c7fa384152efc/app/package.json)
- **[React](https://seerepo.com/uses/react)**: 28 files · [in app/package.json](https://github.com/Kanaries/pygwalker/blob/d91e207d9d6aecefff2e84a5979c7fa384152efc/app/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 8 files
- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 1 file
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 1 file

### Icons

- **[@heroicons/react](https://seerepo.com/uses/heroicons-react)**: 5 files
- **[@radix-ui/react-icons](https://seerepo.com/uses/radix-ui-react-icons)**: 4 files
- **[Lucide](https://seerepo.com/uses/lucide)**: 2 files

## Support (app)

### Content

- **[html-to-image](https://seerepo.com/uses/html-to-image)**: 1 file

### Testing

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

### Other

- **mobx-react-lite**: 7 files
- **MobX**: 3 files
- **clsx**: 1 file
- **uuid**: 1 file

## Frontend (packages/pygwalker-jupyter)

### Interface

- **@lumino/widgets**: 1 file
- **jupyterlab**: 1 file

## Support (packages/pygwalker-jupyter)

### The base

- **@jupyterlab/application**: 1 file

### Other

- **@jupyterlab/services**: 1 file
- **@lumino/messaging**: 1 file

## Other repos with a similar stack

- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): FastAPI, pyarrow, Vite, React, SQLAlchemy, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Headless UI, react-syntax-highlighter, @radix-ui/react-icons, Lucide · [Compare](https://seerepo.com/compare/Kanaries/pygwalker/vs/langflow-ai/langflow)
- [debpalash/VoiceStudio](https://seerepo.com/r/debpalash/VoiceStudio/built): FastAPI, pyarrow, Vite, React, SQLAlchemy, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide · [Compare](https://seerepo.com/compare/debpalash/VoiceStudio/vs/Kanaries/pygwalker)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): FastAPI, pyarrow, Vite, React, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, react-syntax-highlighter, Lucide · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/Kanaries/pygwalker)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, pyarrow, React, SQLAlchemy, jinja2, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI · [Compare](https://seerepo.com/compare/Kanaries/pygwalker/vs/Significant-Gravitas/AutoGPT)
- [unslothai/unsloth](https://seerepo.com/r/unslothai/unsloth/built): FastAPI, Vite, React, jinja2, Pydantic, psutil, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Lucide · [Compare](https://seerepo.com/compare/Kanaries/pygwalker/vs/unslothai/unsloth)
- [bytedance/deer-flow](https://seerepo.com/r/bytedance/deer-flow/built): FastAPI, React, SQLAlchemy, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Headless UI, @radix-ui/react-icons, Lucide · [Compare](https://seerepo.com/compare/bytedance/deer-flow/vs/Kanaries/pygwalker)

## Frequently asked questions

### What language is pygwalker written in?

pygwalker is written in Python, with 22,385 written lines.

### What framework does pygwalker use?

pygwalker is built with FastAPI, Vite, React, and @jupyterlab/application.

### What database does pygwalker use?

pygwalker stores its data in pyarrow and DuckDB and reaches it with sqlglot and SQLAlchemy.

### Does pygwalker have tests?

Yes. pygwalker has 37 test files and is tested with @playwright/test.

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

The ones that share most of its stack: langflow-ai/langflow, debpalash/VoiceStudio, 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.
