Source: https://seerepo.com/r/novuhq/novu/built
Markdown source: https://seerepo.com/r/novuhq/novu/built.md
Description: novu is a TypeScript repo built with Next.js, React, Vite, and Express. It stores its data in MongoDB and Redis and uses AI through Anthropic.

# What is novu built with?

novu is a TypeScript repo built with Next.js, React, Vite, and Express. It stores its data in MongoDB and Redis, uses AI through Anthropic, watches its errors with Sentry, sends webhooks with Svix, and uses MCP. It has 8,179 files and 1,180,873 written lines, with 1,253 test files.

Read on October 31, 2026, at commit 6c5b0ea.

Repository: https://github.com/novuhq/novu

## Frontend

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: [in package.json](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/package.json)
- **[React](https://seerepo.com/uses/react)**: [in package.json](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/package.json)
- **[Vite](https://seerepo.com/uses/vite)**: [in package.json](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/package.json)

## Backend

### The base

- **[Express](https://seerepo.com/uses/express)**: [in package.json](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/package.json)

### Data

- **[MongoDB](https://seerepo.com/uses/mongodb)**: 92 files · [libs/application-generic/src/usecases/upsert-preferences/upsert-preferences.usecase.ts, line 15](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/libs/application-generic/src/usecases/upsert-preferences/upsert-preferences.usecase.ts#L15)
- **[Redis](https://seerepo.com/uses/redis)**: 11 files · [apps/api/src/app/rate-limiting/usecases/evaluate-token-bucket-rate-limit/evaluate-token-bucket-rate-limit.types.ts, line 1](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/apps/api/src/app/rate-limiting/usecases/evaluate-token-bucket-rate-limit/evaluate-token-bucket-rate-limit.types.ts#L1)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 40 files · [apps/api/src/app.module.ts, line 10](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/apps/api/src/app.module.ts#L10)
- **[Anthropic](https://seerepo.com/uses/anthropic)**: 5 files · [libs/application-generic/src/agent-runtimes/anthropic/anthropic-agent-runtime.provider.ts, line 6](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/libs/application-generic/src/agent-runtimes/anthropic/anthropic-agent-runtime.provider.ts#L6)
- **Svix**: 4 files · [apps/dashboard/src/pages/webhooks-page.tsx, line 11](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/apps/dashboard/src/pages/webhooks-page.tsx#L11)
- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/agent-inbox-mcp/src/index.ts, line 1](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/apps/agent-inbox-mcp/src/index.ts#L1)

## Other repos with a similar stack

- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): React, Vite, Express, Sentry, Anthropic, Svix, MCP · [Compare](https://seerepo.com/compare/novuhq/novu/vs/paperclipai/paperclip)
- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): Vite, Express, Redis, Sentry, Anthropic, MCP · [Compare](https://seerepo.com/compare/n8n-io/n8n/vs/novuhq/novu)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): React, Vite, Express, Redis, Sentry, Anthropic · [Compare](https://seerepo.com/compare/novuhq/novu/vs/twentyhq/twenty)
- [LibreChat-AI/LibreChat](https://seerepo.com/r/LibreChat-AI/LibreChat/built): React, Vite, Express, MongoDB, Redis, MCP · [Compare](https://seerepo.com/compare/LibreChat-AI/LibreChat/vs/novuhq/novu)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Next.js, React, Redis, Sentry, Anthropic · [Compare](https://seerepo.com/compare/novuhq/novu/vs/Significant-Gravitas/AutoGPT)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Next.js, React, Vite, Sentry, MCP · [Compare](https://seerepo.com/compare/novuhq/novu/vs/supabase/supabase)

## Frequently asked questions

### What language is novu written in?

novu is written in TypeScript: 8,179 files and 1,180,873 written lines.

### What framework does novu use?

novu is built with Next.js, React, Vite, and Express.

The proof: [in package.json](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/package.json)

### What database does novu use?

novu stores its data in MongoDB and Redis.

The proof: [libs/application-generic/src/usecases/upsert-preferences/upsert-preferences.usecase.ts, line 15](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/libs/application-generic/src/usecases/upsert-preferences/upsert-preferences.usecase.ts#L15)

### Does novu use AI?

Yes. novu uses AI through Anthropic.

The proof: [libs/application-generic/src/agent-runtimes/anthropic/anthropic-agent-runtime.provider.ts, line 6](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/libs/application-generic/src/agent-runtimes/anthropic/anthropic-agent-runtime.provider.ts#L6)

### What services does novu use?

novu watches its errors with Sentry, sends webhooks with Svix, and uses MCP.

The proof: [apps/api/src/app.module.ts, line 10](https://github.com/novuhq/novu/blob/6c5b0ea30fe5a12e740db3f3c0fc635f5fcf75dc/apps/api/src/app.module.ts#L10)

### Does novu have tests?

Yes. novu has 1,253 test files.

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

The ones that share most of its stack: paperclipai/paperclip, n8n-io/n8n, and twentyhq/twenty.

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