Source: https://seerepo.com/r/chaitin/PandaWiki/built
Markdown source: https://seerepo.com/r/chaitin/PandaWiki/built.md
Description: PandaWiki is a TypeScript repo built with Echo, github.com/labstack/echo-contrib, React, react-router-dom, and Next.js. It stores its data in Postgres.

# What is PandaWiki built with?

PandaWiki is a TypeScript repo built with Echo, github.com/labstack/echo-contrib, React, react-router-dom, and Next.js. It stores its data in Postgres, reaches it with gorm.io/gorm, signs people in with golang.org/x/oauth2, github.com/gorilla/sessions, github.com/golang-jwt/jwt/v5, and github.com/go-ldap/ldap/v3, uses AI through mcp-go, github.com/cloudwego/eino, github.com/cloudwego/eino-ext/components/model/deepseek, github.com/pkoukk/tiktoken-go, and github.com/pkoukk/tiktoken-go-loader, watches its errors with Sentry, makes its content with github.com/JohannesKaufmann/html-to-markdown/v2, github.com/gomarkdown/markdown, github.com/microcosm-cc/bluemonday, github.com/russross/blackfriday/v2, github.com/yuin/goldmark, and 12 more, is tested with github.com/stretchr/testify and github.com/google/go-cmp, deploys with OpenTelemetry, and uses go-redis, pq, Redis, NATS.io, github.com/golang-migrate/migrate/v4, and 2 more. It has 138,865 written lines, with 8 test files.

Read on November 13, 2026, at commit 67e1081.

Repository: https://github.com/chaitin/PandaWiki

## Backend (/)

### The base

- **Echo**: 38 files

### Data

- **[go-redis](https://seerepo.com/uses/go-redis)**
- **[pq](https://seerepo.com/uses/pq)**
- **[Redis](https://seerepo.com/uses/redis)**: 4 files · [backend/store/cache/redis.go, line 7](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/backend/store/cache/redis.go#L7)
- **[NATS.io](https://seerepo.com/uses/natsio)**: 3 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 3 files · [backend/store/pg/pg.go, line 13](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/backend/store/pg/pg.go#L13)
- **[github.com/golang-migrate/migrate/v4](https://seerepo.com/uses/githubcom-golang-migrate-migrate-v4)**: 1 file

### Data access

- **[gorm.io/gorm](https://seerepo.com/uses/gormio-gorm)**: 25 files

### Sign-in

- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 4 files
- **github.com/gorilla/sessions**: 3 files
- **[github.com/golang-jwt/jwt/v5](https://seerepo.com/uses/githubcom-golang-jwt-jwt-v5)**: 2 files
- **[github.com/go-ldap/ldap/v3](https://seerepo.com/uses/githubcom-go-ldap-ldap-v3)**: 1 file

### AI

- **[mcp-go](https://seerepo.com/uses/mcp-go)**
- **github.com/cloudwego/eino**: 9 files
- **github.com/cloudwego/eino-ext/components/model/deepseek**: 1 file
- **github.com/pkoukk/tiktoken-go**: 1 file
- **github.com/pkoukk/tiktoken-go-loader**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 2 files · [web/app/sentry.edge.config.ts, line 6](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/sentry.edge.config.ts#L6)
- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [backend/pro_imports.go, line 5](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/backend/pro_imports.go#L5)
- **[MinIO](https://seerepo.com/uses/minio)**: 1 file · [backend/store/s3/minio.go, line 8](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/backend/store/s3/minio.go#L8)

## Support (/)

### The base

- **github.com/labstack/echo-contrib**: 2 files

### Content

- **github.com/JohannesKaufmann/html-to-markdown/v2**: 4 files
- **github.com/gomarkdown/markdown**: 1 file
- **[github.com/microcosm-cc/bluemonday](https://seerepo.com/uses/githubcom-microcosm-cc-bluemonday)**: 1 file
- **github.com/russross/blackfriday/v2**: 1 file
- **[github.com/yuin/goldmark](https://seerepo.com/uses/githubcom-yuin-goldmark)**: 1 file

### Testing

- **github.com/stretchr/testify**: 4 files
- **github.com/google/go-cmp**: 1 file

### Deploy

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

### Tools

- **github.com/google/wire**: 24 files
- **github.com/swaggo/echo-swagger**: 1 file
- **github.com/swaggo/swag**: 1 file

### Other

- **[Google](https://seerepo.com/uses/google)**: 29 files
- **github.com/samber/lo**: 15 files
- **github.com/larksuite/oapi-sdk-go/v3**: 3 files
- **github.com/alibabacloud-go/darabonba-openapi/v2**: 2 files
- **github.com/alibabacloud-go/tea**: 2 files
- **github.com/jinzhu/copier**: 2 files
- **[Alibaba Cloud](https://seerepo.com/uses/alibaba-cloud)**: 1 file
- **github.com/bwmarrin/discordgo**: 1 file
- **github.com/mileusna/useragent**: 1 file
- **github.com/open-dingtalk/dingtalk-stream-sdk-go**: 1 file
- **github.com/robfig/cron/v3**: 1 file
- **github.com/spf13/viper**: 1 file
- **github.com/tidwall/gjson**: 1 file
- **golang.org/x/crypto**: 1 file
- **golang.org/x/net**: 1 file
- **golang.org/x/sync**: 1 file
- **google.golang.org/protobuf**: 1 file

## Frontend (web/admin)

### The base

- **[React](https://seerepo.com/uses/react)**: 193 files · [in web/app/package.json](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 23 files

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 194 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 56 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 22 files
- **[echarts](https://seerepo.com/uses/echarts)**: 3 files
- **react-diff-viewer**: 2 files
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 2 files
- **[react-virtuoso](https://seerepo.com/uses/react-virtuoso)**: 2 files
- **[emoji-mart](https://seerepo.com/uses/emoji-mart)**: 1 file
- **lottie-react**: 1 file
- **react-color-palette**: 1 file
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 1 file

### Icons

- **[@mui/icons-material](https://seerepo.com/uses/mui-icons-material)**: 26 files

## Support (web/admin)

### Content

- **[katex](https://seerepo.com/uses/katex)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 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

### Other

- **dayjs**: 22 files
- **uuid**: 5 files
- **@reduxjs/toolkit**: 3 files
- **Axios**: 3 files
- **Lodash**: 3 files
- **react-redux**: 3 files
- **clsx**: 1 file

## Frontend (web/app)

### The base

- **[React](https://seerepo.com/uses/react)**: 56 files · [in web/app/package.json](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 39 files · [in web/app/package.json](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/package.json)

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 64 files
- **[emoji-mart](https://seerepo.com/uses/emoji-mart)**: 2 files
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 2 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 2 files
- **[react-syntax-highlighter](https://seerepo.com/uses/react-syntax-highlighter)**: 1 file

### Icons

- **[@mui/icons-material](https://seerepo.com/uses/mui-icons-material)**: 10 files

## Backend (web/app)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 6 files · [web/app/sentry.edge.config.ts, line 6](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/sentry.edge.config.ts#L6)

## Support (web/app)

### Content

- **[katex](https://seerepo.com/uses/katex)**: 2 files
- **@vscode/markdown-it-katex**: 1 file
- **[highlight.js](https://seerepo.com/uses/highlightjs)**: 1 file
- **html-react-parser**: 1 file
- **[markdown-it](https://seerepo.com/uses/markdown-it)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-katex](https://seerepo.com/uses/rehype-katex)**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 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

### Other

- **dayjs**: 8 files
- **uuid**: 3 files
- **ahooks**: 1 file
- **js-cookie**: 1 file
- **react-device-detect**: 1 file

## Frontend (web/packages/icons)

### The base

- **[React](https://seerepo.com/uses/react)**: 250 files · [in web/app/package.json](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/package.json)

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 250 files

## Frontend (web/packages/themes)

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 12 files

## Frontend (web/packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 24 files · [in web/app/package.json](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/package.json)

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 23 files
- **[GSAP](https://seerepo.com/uses/gsap)**: 2 files
- **[Swiper](https://seerepo.com/uses/swiper)**: 1 file

### Icons

- **[@mui/icons-material](https://seerepo.com/uses/mui-icons-material)**: 5 files

## Other repos with a similar stack

- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): go-redis, pq, Redis, NATS.io, Postgres, MCP, MinIO, React, gorm.io/gorm, golang.org/x/oauth2, github.com/golang-jwt/jwt/v5, github.com/cloudwego/eino, github.com/pkoukk/tiktoken-go, github.com/gomarkdown/markdown, github.com/yuin/goldmark, OpenTelemetry, React Hook Form, react-dropzone, react-syntax-highlighter, react-markdown, rehype-katex, rehype-raw, rehype-sanitize, remark-breaks, remark-gfm, remark-math, Mermaid · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/infiniflow/ragflow)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): go-redis, Redis, Postgres, React, react-router-dom, Next.js, github.com/golang-jwt/jwt/v5, github.com/yuin/goldmark, dnd-kit, react-virtuoso, emoji-mart, katex, react-markdown, rehype-katex, rehype-raw, rehype-sanitize, remark-breaks, remark-gfm, remark-math, Mermaid · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/multica-ai/multica)
- [go-gitea/gitea](https://seerepo.com/r/go-gitea/gitea/built): go-redis, pq, Redis, Postgres, MinIO, golang.org/x/oauth2, github.com/gorilla/sessions, github.com/golang-jwt/jwt/v5, github.com/go-ldap/ldap/v3, github.com/microcosm-cc/bluemonday, github.com/yuin/goldmark, katex, Mermaid · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/go-gitea/gitea)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Redis, Postgres, Sentry, React, Next.js, React Hook Form, katex, react-markdown, rehype-katex, remark-gfm, remark-math, highlight.js · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/Significant-Gravitas/AutoGPT)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Sentry, MCP, React, Next.js, React Hook Form, dnd-kit, react-dropzone, react-syntax-highlighter, react-markdown, remark-gfm, Mermaid, Swiper · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/supabase/supabase)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): Redis, Postgres, MCP, React, react-router-dom, OpenTelemetry, echarts, katex, react-markdown, highlight.js, markdown-it · [Compare](https://seerepo.com/compare/chaitin/PandaWiki/vs/datawhalechina/hello-agents)

## Frequently asked questions

### What language is PandaWiki written in?

PandaWiki is written in TypeScript, with 138,865 written lines.

### What framework does PandaWiki use?

PandaWiki is built with Echo, github.com/labstack/echo-contrib, React, react-router-dom, and Next.js.

### What database does PandaWiki use?

PandaWiki stores its data in Postgres and reaches it with gorm.io/gorm.

The proof: [backend/store/pg/pg.go, line 13](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/backend/store/pg/pg.go#L13)

### What does PandaWiki sign people in with?

PandaWiki signs people in with golang.org/x/oauth2, github.com/gorilla/sessions, github.com/golang-jwt/jwt/v5, and github.com/go-ldap/ldap/v3.

### Does PandaWiki use AI?

Yes. PandaWiki uses AI through mcp-go, github.com/cloudwego/eino, github.com/cloudwego/eino-ext/components/model/deepseek, github.com/pkoukk/tiktoken-go, and github.com/pkoukk/tiktoken-go-loader.

### What services does PandaWiki use?

PandaWiki watches its errors with Sentry and uses go-redis, pq, Redis, NATS.io, github.com/golang-migrate/migrate/v4, MCP, and MinIO.

The proof: [web/app/sentry.edge.config.ts, line 6](https://github.com/chaitin/PandaWiki/blob/67e1081053e22a4630da9074b1092b6a7ce33199/web/app/sentry.edge.config.ts#L6)

### Does PandaWiki have tests?

Yes. PandaWiki has 8 test files and is tested with github.com/stretchr/testify and github.com/google/go-cmp.

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

The ones that share most of its stack: infiniflow/ragflow, multica-ai/multica, and go-gitea/gitea.

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