Source: https://seerepo.com/r/Mail-0/Zero/built
Markdown source: https://seerepo.com/r/Mail-0/Zero/built.md
Description: Zero is a TypeScript repo built with React, React Router, Vite, Hono, and tRPC. It reaches its data with Drizzle.

# What is Zero built with?

Zero is a TypeScript repo built with React, React Router, Vite, Hono, and tRPC. It reaches its data with Drizzle, signs people in with Better Auth, @tsndr/cloudflare-worker-jwt, and jose, sends email with Resend, uses AI through agents, ai, ElevenLabs, and OpenRouter, measures its use with PostHog, watches its errors with Sentry, makes its content with @react-email/components, dompurify, email-addresses, sanitize-html, streamdown, and 6 more, validates its data with Zod, @hookform/resolvers, and zod-to-json-schema, is tested with Vitest and @electric-sql/pglite, and uses idb-keyval, Redis, Postgres, MCP, and Gmail. It has 91,712 written lines, with 62 test files.

Read on November 13, 2026, at commit 3613273.

Repository: https://github.com/Mail-0/Zero

## Frontend (apps/mail)

### The base

- **[React](https://seerepo.com/uses/react)**: 160 files · [in apps/mail/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 50 files · [in apps/mail/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/package.json)

### Styles

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

### Interface

- **[sonner](https://seerepo.com/uses/sonner)**: 47 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 28 files
- **[motion](https://seerepo.com/uses/motion)**: 16 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 13 files
- **[tiptap](https://seerepo.com/uses/tiptap)**: 11 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 8 files
- **novel**: 6 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 2 files
- **[ProseMirror](https://seerepo.com/uses/prosemirror)**: 2 files
- **[recharts](https://seerepo.com/uses/recharts)**: 2 files
- **[tiptap-markdown](https://seerepo.com/uses/tiptap-markdown)**: 2 files
- **[virtua](https://seerepo.com/uses/virtua)**: 2 files
- **[canvas-confetti](https://seerepo.com/uses/canvas-confetti)**: 1 file
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[input-otp](https://seerepo.com/uses/input-otp)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 1 file
- **react-wrap-balancer**: 1 file
- **[vaul](https://seerepo.com/uses/vaul)**: 1 file

### Icons

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

## Backend (apps/mail)

### Data

- **[idb-keyval](https://seerepo.com/uses/idb-keyval)**: 3 files

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 2 files

### AI

- **agents**: 2 files
- **[ai](https://seerepo.com/uses/ai)**: 2 files
- **[ElevenLabs](https://seerepo.com/uses/elevenlabs)**: 1 file

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 6 files · [apps/mail/lib/posthog-provider.tsx, line 3](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/lib/posthog-provider.tsx#L3)
- **[Sentry](https://seerepo.com/uses/sentry)**: 3 files · [apps/mail/app/instrument.ts, line 1](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/app/instrument.ts#L1)

## Support (apps/mail)

### Content

- **[@react-email/components](https://seerepo.com/uses/react-email-components)**: 3 files
- **[dompurify](https://seerepo.com/uses/dompurify)**: 2 files
- **email-addresses**: 1 file
- **[sanitize-html](https://seerepo.com/uses/sanitize-html)**: 1 file
- **[streamdown](https://seerepo.com/uses/streamdown)**: 1 file

### Validation

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

### Testing

- **Vitest**: 10 files

### Tools

- **@react-router/dev**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 57 files
- **nuqs**: 35 files
- **jotai**: 17 files
- **date-fns**: 7 files
- **[tRPC](https://seerepo.com/uses/trpc)**: 4 files
- **date-fns-tz**: 3 files
- **superjson**: 3 files
- **autumn-js**: 2 files
- **@dub/analytics**: 1 file
- **clsx**: 1 file
- **color**: 1 file
- **dedent**: 1 file
- **isbot**: 1 file
- **jszip**: 1 file
- **lz-string**: 1 file
- **partysocket**: 1 file
- **pluralize**: 1 file
- **remeda**: 1 file

## Frontend (apps/server)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/server/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/package.json)
- **[React](https://seerepo.com/uses/react)**: 2 files · [in apps/mail/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/package.json)

## Backend (apps/server)

### The base

- **[Hono](https://seerepo.com/uses/hono)**: 16 files · [in apps/server/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/package.json)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 6 files · [apps/server/src/lib/redis.ts, line 1](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/lib/redis.ts#L1)
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [apps/server/src/db/index.ts, line 2](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/db/index.ts#L2)

### Data access

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

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 3 files
- **@tsndr/cloudflare-worker-jwt**: 2 files
- **[jose](https://seerepo.com/uses/jose)**: 2 files

### AI

- **[ai](https://seerepo.com/uses/ai)**: 12 files
- **agents**: 3 files
- **[OpenRouter](https://seerepo.com/uses/openrouter)**: 1 file

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/server/src/routes/agent/mcp.ts, line 18](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/routes/agent/mcp.ts#L18)
- **Gmail**: 1 file · [apps/server/src/lib/driver/google.ts, line 19](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/lib/driver/google.ts#L19)
- **[Resend](https://seerepo.com/uses/resend)**: 1 file · [apps/server/src/lib/services.ts, line 2](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/lib/services.ts#L2)

## Support (apps/server)

### The base

- **[tRPC](https://seerepo.com/uses/trpc)**: 8 files

### Content

- **[he](https://seerepo.com/uses/he)**: 3 files
- **[Cheerio](https://seerepo.com/uses/cheerio)**: 2 files
- **mimetext**: 2 files
- **[react-email](https://seerepo.com/uses/react-email)**: 2 files
- **[sanitize-html](https://seerepo.com/uses/sanitize-html)**: 2 files
- **string-strip-html**: 2 files
- **email-addresses**: 1 file
- **[postal-mime](https://seerepo.com/uses/postal-mime)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 31 files
- **[zod-to-json-schema](https://seerepo.com/uses/zod-to-json-schema)**: 1 file

### Testing

- **Vitest**: 49 files
- **[@electric-sql/pglite](https://seerepo.com/uses/electric-sql-pglite)**: 2 files

### Tools

- **@microsoft/microsoft-graph-types**: 1 file

### Other

- **Effect**: 6 files
- **autumn-js**: 4 files
- **dedent**: 3 files
- **superjson**: 2 files
- **@hono/trpc-server**: 1 file
- **@microsoft/microsoft-graph-client**: 1 file
- **base64-js**: 1 file
- **date-fns**: 1 file
- **dub**: 1 file
- **jsonrepair**: 1 file
- **p-retry**: 1 file
- **partyserver**: 1 file
- **remeda**: 1 file
- **uuid**: 1 file

## Frontend (packages/cli)

### Interface

- **[@clack/prompts](https://seerepo.com/uses/clack-prompts)**: 5 files

## Support (packages/cli)

### Other

- **tiny-glob**: 1 file

## Other repos with a similar stack

- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, PostHog, Sentry, Vite, MCP, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, React Hook Form, tiptap, react-hotkeys-hook, dnd-kit, virtua, cmdk, react-day-picker, react-resizable-panels, vaul, Lucide, ai, dompurify, streamdown, Zod, @hookform/resolvers, Drizzle, OpenRouter, Cheerio · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/Mail-0/Zero)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, React Router, PostHog, Sentry, Vite, MCP, Tailwind CSS, class-variance-authority, next-themes, sonner, Radix UI, motion, React Hook Form, dnd-kit, recharts, cmdk, input-otp, react-day-picker, react-resizable-panels, react-wrap-balancer, vaul, Lucide, ai, streamdown, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/Mail-0/Zero/vs/supabase/supabase)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, PostHog, Sentry, Redis, Postgres, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, sonner, Radix UI, motion, React Hook Form, recharts, canvas-confetti, cmdk, react-day-picker, vaul, Better Auth, ai, ElevenLabs, streamdown, Zod, @hookform/resolvers, jose · [Compare](https://seerepo.com/compare/Mail-0/Zero/vs/Significant-Gravitas/AutoGPT)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): React, React Router, Sentry, Vite, Hono, Tailwind CSS, class-variance-authority, tailwind-merge, sonner, Radix UI, React Hook Form, tiptap, dnd-kit, recharts, cmdk, react-day-picker, Lucide, Better Auth, dompurify, sanitize-html, Zod, @hookform/resolvers, jose, Cheerio · [Compare](https://seerepo.com/compare/Mail-0/Zero/vs/TryGhost/Ghost)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): React, React Router, Vite, MCP, Tailwind CSS, class-variance-authority, next-themes, sonner, Radix UI, motion, React Hook Form, dnd-kit, recharts, cmdk, input-otp, react-day-picker, react-resizable-panels, vaul, Lucide, ai, streamdown, Zod · [Compare](https://seerepo.com/compare/Mail-0/Zero/vs/shadcn-ui/ui)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): React, Sentry, Vite, Postgres, MCP, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, dnd-kit, cmdk, react-resizable-panels, Lucide, Better Auth, ai, dompurify, Zod, Drizzle, OpenRouter, @clack/prompts · [Compare](https://seerepo.com/compare/Mail-0/Zero/vs/paperclipai/paperclip)

## Frequently asked questions

### What language is Zero written in?

Zero is written in TypeScript, with 91,712 written lines.

### What framework does Zero use?

Zero is built with React, React Router, Vite, Hono, and tRPC.

The proof: [in apps/mail/package.json](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/mail/package.json)

### What does Zero sign people in with?

Zero signs people in with Better Auth, @tsndr/cloudflare-worker-jwt, and jose.

### Does Zero use AI?

Yes. Zero uses AI through agents, ai, ElevenLabs, and OpenRouter.

### What services does Zero use?

Zero sends email with Resend, measures its use with PostHog, watches its errors with Sentry, and uses idb-keyval, Redis, Postgres, MCP, and Gmail.

The proof: [apps/server/src/lib/services.ts, line 2](https://github.com/Mail-0/Zero/blob/36132735ca3b734b23f48127f9271c80d1ba76e7/apps/server/src/lib/services.ts#L2)

### Does Zero have tests?

Yes. Zero has 62 test files and is tested with Vitest and @electric-sql/pglite.

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

The ones that share most of its stack: CherryHQ/cherry-studio, supabase/supabase, and Significant-Gravitas/AutoGPT.

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