Source: https://seerepo.com/r/alan2207/bulletproof-react/built
Markdown source: https://seerepo.com/r/alan2207/bulletproof-react/built.md
Description: bulletproof-react is a TypeScript repo built with React, Next.js, Express, Vite, and React Router.

# What is bulletproof-react built with?

bulletproof-react is a TypeScript repo built with React, Next.js, Express, Vite, and React Router. It makes its content with isomorphic-dompurify, marked, and dompurify, validates its data with Zod and @hookform/resolvers, is tested with msw, Testing Library, @playwright/test, Vitest, @ngneat/falso, and 1 more, and deploys with pino-http. It has 22,882 written lines, with 52 test files.

Read on November 7, 2026, at commit 9506629.

Repository: https://github.com/alan2207/bulletproof-react

## Frontend (apps/nextjs-app)

### The base

- **[React](https://seerepo.com/uses/react)**: 24 files · [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 13 files · [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 7 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 5 files
- **[react-error-boundary](https://seerepo.com/uses/react-error-boundary)**: 4 files

### Icons

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

## Backend (apps/nextjs-app)

### The base

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

## Support (apps/nextjs-app)

### Content

- **isomorphic-dompurify**: 1 file
- **[marked](https://seerepo.com/uses/marked)**: 1 file

### Validation

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

### Testing

- **msw**: 9 files
- **Testing Library**: 5 files
- **@playwright/test**: 3 files
- **Vitest**: 2 files
- **@ngneat/falso**: 1 file

### Deploy

- **pino-http**: 1 file

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 22 files
- **js-cookie**: 2 files
- **nanoid**: 2 files
- **.ENV**: 1 file
- **clsx**: 1 file
- **cors**: 1 file
- **dayjs**: 1 file
- **zustand**: 1 file

## Frontend (apps/nextjs-pages)

### The base

- **[React](https://seerepo.com/uses/react)**: 31 files · [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 17 files · [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 7 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 5 files
- **[react-error-boundary](https://seerepo.com/uses/react-error-boundary)**: 3 files

### Icons

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

## Backend (apps/nextjs-pages)

### The base

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

## Support (apps/nextjs-pages)

### Content

- **isomorphic-dompurify**: 1 file
- **[marked](https://seerepo.com/uses/marked)**: 1 file

### Validation

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

### Testing

- **msw**: 9 files
- **Testing Library**: 5 files
- **@playwright/test**: 3 files
- **next-router-mock**: 2 files
- **Vitest**: 2 files
- **@ngneat/falso**: 1 file

### Deploy

- **pino-http**: 1 file

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 17 files
- **js-cookie**: 2 files
- **nanoid**: 2 files
- **.ENV**: 1 file
- **Axios**: 1 file
- **clsx**: 1 file
- **cors**: 1 file
- **dayjs**: 1 file
- **zustand**: 1 file

## Frontend (apps/react-vite)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/react-vite/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/react-vite/package.json)
- **[React](https://seerepo.com/uses/react)**: 25 files · [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 14 files

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 7 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 5 files
- **[react-error-boundary](https://seerepo.com/uses/react-error-boundary)**: 2 files
- **[react-helmet-async](https://seerepo.com/uses/react-helmet-async)**: 2 files

### Icons

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

## Backend (apps/react-vite)

### The base

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

## Support (apps/react-vite)

### Content

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

### Validation

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

### Testing

- **msw**: 9 files
- **Testing Library**: 5 files
- **@playwright/test**: 3 files
- **Vitest**: 2 files
- **@ngneat/falso**: 1 file

### Deploy

- **pino-http**: 1 file

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 19 files
- **js-cookie**: 2 files
- **nanoid**: 2 files
- **Axios**: 1 file
- **clsx**: 1 file
- **cors**: 1 file
- **dayjs**: 1 file
- **zustand**: 1 file

## Other repos with a similar stack

- [novuhq/novu](https://seerepo.com/r/novuhq/novu/built): React, Next.js, Express, Vite, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, React Hook Form, Lucide, @radix-ui/react-icons, marked, Zod, @hookform/resolvers, react-helmet-async · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/novuhq/novu)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): React, Express, Vite, React Router, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, React Hook Form, react-error-boundary, Lucide, Zod, @hookform/resolvers, dompurify · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/TryGhost/Ghost)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Next.js, Vite, React Router, Tailwind CSS, class-variance-authority, Radix UI, React Hook Form, react-error-boundary, Lucide, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/supabase/supabase)
- [ruvnet/ruflo](https://seerepo.com/r/ruvnet/ruflo/built): React, Express, Vite, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, React Hook Form, Lucide, isomorphic-dompurify, marked, Zod · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/ruvnet/ruflo)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, Vite, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, React Hook Form, react-error-boundary, Lucide, Zod, @hookform/resolvers, dompurify · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/CherryHQ/cherry-studio)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): React, Next.js, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, React Hook Form, Lucide, marked, Zod, @hookform/resolvers, dompurify · [Compare](https://seerepo.com/compare/alan2207/bulletproof-react/vs/calcom/cal.diy)

## Frequently asked questions

### What language is bulletproof-react written in?

bulletproof-react is written in TypeScript, with 22,882 written lines.

### What framework does bulletproof-react use?

bulletproof-react is built with React, Next.js, Express, Vite, and React Router.

The proof: [in apps/nextjs-app/package.json](https://github.com/alan2207/bulletproof-react/blob/9506629ed003a561c6627735480cce4994244bb4/apps/nextjs-app/package.json)

### Does bulletproof-react have tests?

Yes. bulletproof-react has 52 test files and is tested with msw, Testing Library, @playwright/test, Vitest, @ngneat/falso, and next-router-mock.

### Which repos have a stack like bulletproof-react's?

The ones that share most of its stack: novuhq/novu, TryGhost/Ghost, 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.
