Source: https://seerepo.com/r/trycompai/crm/built
Markdown source: https://seerepo.com/r/trycompai/crm/built.md
Description: crm is a TypeScript repo built with NestJS, tRPC, React, Next.js, and @trpc/server. It stores its data in Postgres.

# What is crm built with?

crm is a TypeScript repo built with NestJS, tRPC, React, Next.js, and @trpc/server. It stores its data in Postgres, signs people in with Better Auth and helmet, uses AI through eve and ai, measures its use with PostHog, makes its content with shiki and streamdown, validates its data with Zod, class-transformer, and class-validator, is tested with supertest and @nestjs/testing, and uses MCP, @nestjs/cache-manager, cache-manager, @keyv/redis, and Vercel. It has 136,893 written lines, with 139 test files.

Read on November 11, 2026, at commit c9473b8.

Repository: https://github.com/trycompai/crm

## Backend (apps/agent)

### AI

- **eve**: 76 files
- **[ai](https://seerepo.com/uses/ai)**: 1 file

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/agent/agent/lib/mcp-runtime.ts, line 6](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/agent/agent/lib/mcp-runtime.ts#L6)

## Support (apps/agent)

### Validation

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

### Other

- **context.dev**: 2 files

## Backend (apps/api)

### The base

- **[NestJS](https://seerepo.com/uses/nestjs)**: 145 files · [in apps/api/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/api/package.json)

### Data

- **@nestjs/cache-manager**: 5 files
- **cache-manager**: 4 files
- **@keyv/redis**: 1 file

### Sign-in

- **[Better Auth](https://seerepo.com/uses/better-auth)**: 5 files
- **[helmet](https://seerepo.com/uses/helmet)**: 1 file

## Support (apps/api)

### The base

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

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 53 files
- **[class-transformer](https://seerepo.com/uses/class-transformer)**: 1 file
- **[class-validator](https://seerepo.com/uses/class-validator)**: 1 file

### Testing

- **supertest**: 2 files
- **@nestjs/testing**: 1 file

### Tools

- **trpc-to-openapi**: 2 files

### Other

- **reflect-metadata**: 1 file
- **rxjs**: 1 file

## Frontend (apps/app)

### The base

- **[React](https://seerepo.com/uses/react)**: 117 files · [in apps/app/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 66 files · [in apps/app/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/package.json)

### Styles

- **[next-themes](https://seerepo.com/uses/next-themes)**: 3 files

### Interface

- **[sonner](https://seerepo.com/uses/sonner)**: 63 files

### Icons

- **@carbon/icons-react**: 68 files

## Backend (apps/app)

### Sign-in

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

### AI

- **eve**: 5 files

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [apps/app/components/landing/analytics.tsx, line 17](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/components/landing/analytics.tsx#L17)

## Support (apps/app)

### The base

- **@trpc/server**: 1 file

### Content

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

### Validation

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

### Tools

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

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 82 files
- **nuqs**: 18 files
- **[tRPC](https://seerepo.com/uses/trpc)**: 3 files
- **pierre**: 2 files
- **server-only**: 2 files
- **GraphQL**: 1 file

## Backend (packages/auth)

### Sign-in

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

## Support (packages/auth)

### Validation

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

## Backend (packages/db)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [packages/db/src/client.ts, line 3](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/packages/db/src/client.ts#L3)
- **[Vercel](https://seerepo.com/uses/vercel)**: 1 file · [packages/db/src/blob.ts, line 51](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/packages/db/src/blob.ts#L51)

## Support (packages/mcp-integrations)

### Validation

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

## Backend (packages/telemetry)

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [apps/app/components/landing/analytics.tsx, line 17](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/components/landing/analytics.tsx#L17)

## Frontend (packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 85 files · [in apps/app/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 1 file · [in apps/app/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 23 files
- **[motion](https://seerepo.com/uses/motion)**: 4 files
- **@shadcn/react**: 2 files
- **[recharts](https://seerepo.com/uses/recharts)**: 2 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **[sonner](https://seerepo.com/uses/sonner)**: 1 file
- **[vaul](https://seerepo.com/uses/vaul)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 12 files
- **@carbon/icons-react**: 9 files
- **[Simple Icons](https://seerepo.com/uses/simple-icons)**: 2 files

## Support (packages/ui)

### Content

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

### Other

- **clsx**: 1 file
- **nuqs**: 1 file

## Support (packages/validation)

### Validation

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

## Other repos with a similar stack

- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): MCP, React, Next.js, PostHog, Vercel, ai, Zod, next-themes, sonner, shiki, Tailwind CSS, class-variance-authority, Radix UI, motion, recharts, cmdk, dnd-kit, react-day-picker, vaul, Lucide, streamdown · [Compare](https://seerepo.com/compare/supabase/supabase/vs/trycompai/crm)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): NestJS, tRPC, React, Next.js, PostHog, @trpc/server, Postgres, Vercel, Zod, helmet, class-transformer, class-validator, next-themes, sonner, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, cmdk, react-day-picker, Lucide · [Compare](https://seerepo.com/compare/calcom/cal.diy/vs/trycompai/crm)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Next.js, PostHog, Postgres, ai, Zod, Better Auth, next-themes, sonner, shiki, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, recharts, cmdk, react-day-picker, vaul, streamdown · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/trycompai/crm)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): MCP, React, Next.js, Vercel, ai, Zod, next-themes, sonner, shiki, Tailwind CSS, class-variance-authority, Radix UI, motion, recharts, cmdk, dnd-kit, react-day-picker, vaul, Lucide, streamdown · [Compare](https://seerepo.com/compare/shadcn-ui/ui/vs/trycompai/crm)
- [thedotmack/claude-mem](https://seerepo.com/r/thedotmack/claude-mem/built): MCP, React, Next.js, PostHog, Postgres, Vercel, eve, ai, Zod, Better Auth, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, cmdk, Lucide, streamdown · [Compare](https://seerepo.com/compare/thedotmack/claude-mem/vs/trycompai/crm)
- [cline/cline](https://seerepo.com/r/cline/cline/built): MCP, React, PostHog, ai, Zod, next-themes, sonner, shiki, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, @shadcn/react, recharts, cmdk, Lucide, streamdown · [Compare](https://seerepo.com/compare/cline/cline/vs/trycompai/crm)

## Frequently asked questions

### What language is crm written in?

crm is written in TypeScript, with 136,893 written lines.

### What framework does crm use?

crm is built with NestJS, tRPC, React, Next.js, and @trpc/server.

The proof: [in apps/api/package.json](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/api/package.json)

### What database does crm use?

crm stores its data in Postgres.

The proof: [packages/db/src/client.ts, line 3](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/packages/db/src/client.ts#L3)

### What does crm sign people in with?

crm signs people in with Better Auth and helmet.

### Does crm use AI?

Yes. crm uses AI through eve and ai.

### What services does crm use?

crm measures its use with PostHog and uses MCP, @nestjs/cache-manager, cache-manager, @keyv/redis, and Vercel.

The proof: [apps/app/components/landing/analytics.tsx, line 17](https://github.com/trycompai/crm/blob/c9473b82e3b4bfd5d0598bbdf7c1f36f3d2d68f0/apps/app/components/landing/analytics.tsx#L17)

### Does crm have tests?

Yes. crm has 139 test files and is tested with supertest and @nestjs/testing.

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

The ones that share most of its stack: supabase/supabase, calcom/cal.diy, 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.
