Source: https://seerepo.com/r/vercel/chatbot/built
Markdown source: https://seerepo.com/r/vercel/chatbot/built.md
Description: chatbot is a TypeScript repo built with React and Next.js. It stores its data in Postgres, reaches it with Drizzle, and signs people in with next-auth.

# What is chatbot built with?

chatbot is a TypeScript repo built with React and Next.js. It stores its data in Postgres, reaches it with Drizzle, signs people in with next-auth, uses AI through ai and ai-sdk, makes its content with papaparse, streamdown, prosemirror-markdown, and shiki, validates its data with Zod, is tested with @playwright/test, and uses Redis and Vercel. It has 20,934 written lines, with 9 test files.

Read on November 5, 2026, at commit a8989b5.

Repository: https://github.com/vercel/chatbot

## Frontend

### The base

- **[React](https://seerepo.com/uses/react)**: 76 files · [in package.json](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 22 files · [in package.json](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 5 files
- **[next-themes](https://seerepo.com/uses/next-themes)**: 4 files
- **classnames**: 3 files
- **@codemirror/theme-one-dark**: 1 file
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 18 files
- **[sonner](https://seerepo.com/uses/sonner)**: 12 files
- **[Framer](https://seerepo.com/uses/framer)**: 8 files
- **ProseMirror**: 5 files
- **prosemirror-view**: 5 files
- **prosemirror-state**: 4 files
- **usehooks-ts**: 4 files
- **@streamdown/code**: 2 files
- **prosemirror-inputrules**: 2 files
- **prosemirror-schema-basic**: 2 files
- **prosemirror-schema-list**: 2 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[CodeMirror](https://seerepo.com/uses/codemirror)**: 1 file
- **[motion](https://seerepo.com/uses/motion)**: 1 file
- **prosemirror-example-setup**: 1 file
- **react-data-grid**: 1 file
- **use-stick-to-bottom**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 22 files

## Backend

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [lib/db/migrate.ts, line 4](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/lib/db/migrate.ts#L4)
- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [lib/ratelimit.ts, line 1](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/lib/ratelimit.ts#L1)
- **[Vercel](https://seerepo.com/uses/vercel)**: 1 file · [app/(chat)/api/files/upload/route.ts, line 1](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/app/(chat)/api/files/upload/route.ts#L1)

### Data access

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

### Sign-in

- **next-auth**: 14 files

### AI

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

## Support

### Content

- **[papaparse](https://seerepo.com/uses/papaparse)**: 2 files
- **[streamdown](https://seerepo.com/uses/streamdown)**: 2 files
- **prosemirror-markdown**: 1 file
- **[shiki](https://seerepo.com/uses/shiki)**: 1 file

### Validation

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

### Testing

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

### Other

- **SWR**: 11 files
- **date-fns**: 5 files
- **fast-deep-equal**: 5 files
- **botid**: 2 files
- **nanoid**: 2 files
- **server-only**: 2 files
- **.ENV**: 1 file
- **clsx**: 1 file
- **diff-match-patch**: 1 file
- **orderedmap**: 1 file
- **resumable-stream**: 1 file

## Other repos with a similar stack

- [bytedance/deer-flow](https://seerepo.com/r/bytedance/deer-flow/built): React, Next.js, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, Radix UI, sonner, @streamdown/code, cmdk, CodeMirror, motion, use-stick-to-bottom, Lucide, ai, papaparse, streamdown, shiki, Zod · [Compare](https://seerepo.com/compare/bytedance/deer-flow/vs/vercel/chatbot)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Next.js, Postgres, Redis, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, Radix UI, sonner, Framer, cmdk, motion, use-stick-to-bottom, ai, streamdown, shiki, Zod · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/vercel/chatbot)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Next.js, Vercel, Tailwind CSS, class-variance-authority, next-themes, Radix UI, sonner, cmdk, motion, use-stick-to-bottom, Lucide, ai, papaparse, streamdown, shiki, Zod · [Compare](https://seerepo.com/compare/supabase/supabase/vs/vercel/chatbot)
- [cline/cline](https://seerepo.com/r/cline/cline/built): React, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, Radix UI, sonner, cmdk, motion, use-stick-to-bottom, Lucide, ai, ai-sdk, streamdown, shiki, Zod · [Compare](https://seerepo.com/compare/cline/cline/vs/vercel/chatbot)
- [BerriAI/litellm](https://seerepo.com/r/BerriAI/litellm/built): React, Next.js, Postgres, Redis, Tailwind CSS, class-variance-authority, next-themes, sonner, ProseMirror, prosemirror-view, prosemirror-state, usehooks-ts, cmdk, Lucide, papaparse, Zod · [Compare](https://seerepo.com/compare/BerriAI/litellm/vs/vercel/chatbot)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): React, Next.js, Vercel, Tailwind CSS, class-variance-authority, next-themes, Radix UI, sonner, cmdk, motion, Lucide, ai, streamdown, shiki, Zod · [Compare](https://seerepo.com/compare/shadcn-ui/ui/vs/vercel/chatbot)

## Frequently asked questions

### What language is chatbot written in?

chatbot is written in TypeScript, with 20,934 written lines.

### What framework does chatbot use?

chatbot is built with React and Next.js.

The proof: [in package.json](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/package.json)

### What database does chatbot use?

chatbot stores its data in Postgres and reaches it with Drizzle.

The proof: [lib/db/migrate.ts, line 4](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/lib/db/migrate.ts#L4)

### What does chatbot sign people in with?

chatbot signs people in with next-auth.

### Does chatbot use AI?

Yes. chatbot uses AI through ai and ai-sdk.

### What services does chatbot use?

chatbot uses Redis and Vercel.

The proof: [lib/ratelimit.ts, line 1](https://github.com/vercel/chatbot/blob/a8989b522fa3672a2ae52f053105e40993b36ca1/lib/ratelimit.ts#L1)

### Does chatbot have tests?

Yes. chatbot has 9 test files and is tested with @playwright/test.

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

The ones that share most of its stack: bytedance/deer-flow, Significant-Gravitas/AutoGPT, and supabase/supabase.

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