Source: https://seerepo.com/r/triggerdotdev/trigger.dev/built
Markdown source: https://seerepo.com/r/triggerdotdev/trigger.dev/built.md
Description: trigger.dev is a TypeScript repo built with React, Remix, remix-utils, remix-run, Express, and 1 more.

# What is trigger.dev built with?

trigger.dev is a TypeScript repo built with React, Remix, remix-utils, remix-run, Express, and 1 more. It stores its data in @aws-sdk/s3-request-presigner, lru-cache, Postgres, ClickHouse, and Convex, reaches it with Prisma and Drizzle, signs people in with jose, remix-auth, remix-auth-google, @aws-sdk/client-sts, and Better Auth, sends email with Resend, uses AI through @ai-sdk/react, ai, OpenAI, ai-sdk, Anthropic, and 1 more, measures its use with PostHog, watches its errors with Sentry, connects to GitHub, makes its content with streamdown, prismjs, qrcode.react, react-markdown, react-email, and 2 more, validates its data with Zod, zod-validation-error, @sinclair/typebox, arktype, yup, and 1 more, is tested with @playwright/test, Vitest, @testcontainers/postgresql, supertest, jsdom, and 3 more, deploys with prom-client, @kubernetes/client-node, dockerode, @aws-sdk/client-ecr, opentelemetry, and 3 more, and uses Redis, GraphQL, and MCP. It has 1,285,621 written lines, with 1,890 test files.

Read on November 7, 2026, at commit 41ad199.

Repository: https://github.com/triggerdotdev/trigger.dev

## Support (/)

### Testing

- **@playwright/test**: 1 file

## Backend (apps/supervisor)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [apps/supervisor/src/index.ts, line 55](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/supervisor/src/index.ts#L55)

## Support (apps/supervisor)

### Validation

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

### Testing

- **Vitest**: 39 files

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 10 files
- **@kubernetes/client-node**: 6 files
- **dockerode**: 4 files
- **@aws-sdk/client-ecr**: 1 file

### Other

- **p-limit**: 2 files
- **std-env**: 2 files
- **Socket.io**: 1 file
- **socket.io-client**: 1 file

## Frontend (apps/webapp)

### The base

- **[React](https://seerepo.com/uses/react)**: 449 files · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)
- **Remix**: 245 files · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)
- **remix-utils**: 9 files

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 47 files
- **[Framer](https://seerepo.com/uses/framer)**: 43 files
- **Ariakit**: 22 files
- **[recharts](https://seerepo.com/uses/recharts)**: 17 files
- **[CodeMirror](https://seerepo.com/uses/codemirror)**: 8 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 8 files
- **[sonner](https://seerepo.com/uses/sonner)**: 5 files
- **react-grid-layout**: 4 files
- **[@uiw/react-codemirror](https://seerepo.com/uses/uiw-react-codemirror)**: 3 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 3 files
- **[input-otp](https://seerepo.com/uses/input-otp)**: 2 files
- **[@lezer/highlight](https://seerepo.com/uses/lezer-highlight)**: 1 file
- **[@popperjs/core](https://seerepo.com/uses/popperjs-core)**: 1 file
- **@streamdown/code**: 1 file
- **[Headless UI](https://seerepo.com/uses/headless-ui)**: 1 file
- **[prism-react-renderer](https://seerepo.com/uses/prism-react-renderer)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **react-popper**: 1 file

### Icons

- **[@heroicons/react](https://seerepo.com/uses/heroicons-react)**: 256 files
- **[Lucide](https://seerepo.com/uses/lucide)**: 41 files
- **[@tabler/icons-react](https://seerepo.com/uses/tabler-icons-react)**: 20 files

## Backend (apps/webapp)

### The base

- **remix-run**: 539 files
- **[Express](https://seerepo.com/uses/express)**: 6 files · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 28 files · [apps/supervisor/src/index.ts, line 55](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/supervisor/src/index.ts#L55)
- **[@aws-sdk/s3-request-presigner](https://seerepo.com/uses/aws-sdk-s3-request-presigner)**: 2 files
- **[lru-cache](https://seerepo.com/uses/lru-cache)**: 2 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)

### Data access

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

### Sign-in

- **[jose](https://seerepo.com/uses/jose)**: 6 files
- **remix-auth**: 5 files
- **remix-auth-google**: 3 files
- **@aws-sdk/client-sts**: 1 file
- **[Better Auth](https://seerepo.com/uses/better-auth)**: 1 file

### AI

- **[@ai-sdk/react](https://seerepo.com/uses/ai-sdk-react)**: 9 files
- **[ai](https://seerepo.com/uses/ai)**: 8 files

### Services

- **[OpenAI](https://seerepo.com/uses/openai)**: 7 files · [apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query.ai-generate.tsx, line 1](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/routes/resources.orgs.$organizationSlug.projects.$projectParam.env.$envParam.query.ai-generate.tsx#L1)
- **[Sentry](https://seerepo.com/uses/sentry)**: 4 files · [apps/webapp/app/entry.server.tsx, line 3](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/entry.server.tsx#L3)
- **[PostHog](https://seerepo.com/uses/posthog)**: 2 files · [apps/webapp/app/hooks/usePostHog.ts, line 2](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/hooks/usePostHog.ts#L2)
- **[GitHub](https://seerepo.com/uses/github)**: 1 file · [apps/webapp/app/services/gitHub.server.ts, line 1](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/services/gitHub.server.ts#L1)
- **GraphQL**: 1 file · [apps/webapp/app/utils/plain.server.ts, line 1](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/utils/plain.server.ts#L1)

## Support (apps/webapp)

### The base

- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 27 files

### Content

- **[streamdown](https://seerepo.com/uses/streamdown)**: 2 files
- **[prismjs](https://seerepo.com/uses/prismjs)**: 1 file
- **[qrcode.react](https://seerepo.com/uses/qrcodereact)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 509 files
- **zod-validation-error**: 5 files

### Testing

- **Vitest**: 1,027 files
- **@testcontainers/postgresql**: 5 files
- **supertest**: 3 files
- **@playwright/test**: 1 file
- **jsdom**: 1 file

### Deploy

- **[prom-client](https://seerepo.com/uses/prom-client)**: 13 files
- **opentelemetry**: 6 files
- **[Vercel](https://seerepo.com/uses/vercel)**: 3 files
- **@aws-sdk/client-ecr**: 2 files
- **[morgan](https://seerepo.com/uses/morgan)**: 1 file

### Tools

- **assert-never**: 25 files
- **@remix-run/dev**: 2 files
- **sql-formatter**: 1 file
- **vite-tsconfig-paths**: 1 file

### Other

- **neverthrow**: 39 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 28 files
- **nanoid**: 26 files
- **parse-duration**: 22 files
- **tiny-invariant**: 12 files
- **date-fns**: 11 files
- **p-map**: 8 files
- **@slack/web-api**: 6 files
- **cron-parser**: 6 files
- **p-retry**: 6 files
- **react-use**: 6 files
- **match-sorter**: 5 files
- **p-limit**: 5 files
- **cronstrue**: 3 files
- **json-stable-stringify**: 3 files
- **slug**: 3 files
- **Socket.io**: 3 files
- **.ENV**: 2 files
- **picomatch**: 2 files
- **socket.io-client**: 2 files
- **superjson**: 2 files
- **ws**: 2 files
- **@aws-sdk/s3-presigned-post**: 1 file
- **@internationalized/date**: 1 file
- **@tanstack/match-sorter-utils**: 1 file
- **aws4fetch**: 1 file
- **clsx**: 1 file
- **compression**: 1 file
- **cookie**: 1 file
- **Effect**: 1 file
- **engine.io**: 1 file
- **isbot**: 1 file
- **random-words**: 1 file
- **SemVer**: 1 file
- **socket.io-adapter**: 1 file
- **uuid**: 1 file

## Support (internal-packages/alert-contracts)

### Validation

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

### Testing

- **Vitest**: 1 file

## Support (internal-packages/billing)

### Testing

- **Vitest**: 1 file

### Other

- **neverthrow**: 2 files

## Backend (internal-packages/cache)

### Data

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

## Support (internal-packages/cache)

### Testing

- **Vitest**: 1 file

### Other

- **superjson**: 1 file

## Backend (internal-packages/clickhouse)

### Data

- **[ClickHouse](https://seerepo.com/uses/clickhouse)**: 12 files

## Support (internal-packages/clickhouse)

### Validation

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

### Testing

- **Vitest**: 6 files

## Support (internal-packages/dashboard-agent-contracts)

### Validation

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

### Testing

- **Vitest**: 6 files

## Backend (internal-packages/dashboard-agent-db)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 3 files · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)

### Data access

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

## Support (internal-packages/dashboard-agent-db)

### Testing

- **@testcontainers/postgresql**: 1 file
- **Vitest**: 1 file

## Backend (internal-packages/dashboard-agent)

### Data access

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

### AI

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

### Services

- **[Anthropic](https://seerepo.com/uses/anthropic)**: 2 files · [internal-packages/dashboard-agent/src/dashboard-agent.eval.ts, line 7](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/internal-packages/dashboard-agent/src/dashboard-agent.eval.ts#L7)

## Support (internal-packages/dashboard-agent)

### Validation

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

### Testing

- **Vitest**: 33 files

## Backend (internal-packages/database)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)

### Data access

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

## Support (internal-packages/database)

### Testing

- **Vitest**: 4 files

### Other

- **decimal.js**: 1 file

## Frontend (internal-packages/emails)

### The base

- **[React](https://seerepo.com/uses/react)**: 8 files · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)

## Backend (internal-packages/emails)

### Services

- **[Resend](https://seerepo.com/uses/resend)**: 1 file · [internal-packages/emails/src/transports/resend.ts, line 3](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/internal-packages/emails/src/transports/resend.ts#L3)

## Support (internal-packages/emails)

### Content

- **[react-email](https://seerepo.com/uses/react-email)**: 21 files
- **[nodemailer](https://seerepo.com/uses/nodemailer)**: 2 files
- **@aws-sdk/client-sesv2**: 1 file

### Validation

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

## Support (internal-packages/llm-model-catalog)

### Testing

- **Vitest**: 2 files

## Support (internal-packages/metrics-pipeline)

### Testing

- **Vitest**: 3 files

## Support (internal-packages/observability-map)

### Testing

- **Vitest**: 1 file

### Tools

- **@typescript/typescript6**: 3 files

## Support (internal-packages/rbac)

### Testing

- **Vitest**: 6 files

## Backend (internal-packages/redis)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [apps/supervisor/src/index.ts, line 55](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/supervisor/src/index.ts#L55)

## Support (internal-packages/redis)

### Testing

- **Vitest**: 3 files

## Backend (internal-packages/replication)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)

## Support (internal-packages/replication)

### Other

- **redlock**: 1 file

## Support (internal-packages/run-engine)

### Validation

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

### Testing

- **Vitest**: 148 files

### Deploy

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

### Tools

- **assert-never**: 3 files

### Other

- **p-map**: 5 files
- **nanoid**: 4 files
- **redlock**: 1 file
- **seedrandom**: 1 file

## Backend (internal-packages/run-ops-database)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)

## Support (internal-packages/run-ops-database)

### Testing

- **Vitest**: 2 files

## Support (internal-packages/run-store)

### Testing

- **Vitest**: 137 files

### Deploy

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

## Support (internal-packages/schedule-engine)

### Validation

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

### Testing

- **Vitest**: 5 files

### Other

- **cron-parser**: 1 file

## Support (internal-packages/sso)

### Testing

- **Vitest**: 1 file

### Other

- **neverthrow**: 2 files

## Backend (internal-packages/testcontainers)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 6 files · [apps/webapp/app/db.server.ts, line 16](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/db.server.ts#L16)
- **[ClickHouse](https://seerepo.com/uses/clickhouse)**: 3 files
- **[Redis](https://seerepo.com/uses/redis)**: 2 files · [apps/supervisor/src/index.ts, line 55](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/supervisor/src/index.ts#L55)

## Support (internal-packages/testcontainers)

### Testing

- **Vitest**: 15 files
- **testcontainers**: 10 files

### Other

- **tinyexec**: 3 files
- **std-env**: 2 files

## Support (internal-packages/tracing)

### Deploy

- **opentelemetry**: 1 file

### Other

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

## Support (internal-packages/tsql)

### Testing

- **Vitest**: 11 files

### Tools

- **antlr4ts**: 5 files

## Support (internal-packages/webhook-engine)

### Validation

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

### Testing

- **Vitest**: 15 files

### Deploy

- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 3 files

## Support (internal-packages/webhook-sources)

### Validation

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

### Testing

- **Vitest**: 4 files

## Frontend (packages/cli-v3)

### Interface

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

## Backend (packages/cli-v3)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 6 files · [packages/cli-v3/src/commands/mcp.ts, line 2](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/packages/cli-v3/src/commands/mcp.ts#L2)
- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [apps/webapp/app/hooks/usePostHog.ts, line 2](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/app/hooks/usePostHog.ts#L2)

## Support (packages/cli-v3)

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 50 files
- **zod-validation-error**: 1 file

### Testing

- **Vitest**: 36 files
- **@epic-web/test-server**: 1 file

### Deploy

- **opentelemetry**: 3 files

### Tools

- **commander**: 38 files
- **esbuild**: 8 files
- **pkg-types**: 4 files
- **source-map-support**: 4 files
- **cli-table3**: 3 files
- **tinyglobby**: 3 files
- **magicast**: 2 files
- **nypm**: 2 files
- **c12**: 1 file
- **find-up**: 1 file
- **git-last-commit**: 1 file
- **has-flag**: 1 file
- **ignore**: 1 file
- **import-in-the-middle**: 1 file
- **resolve**: 1 file
- **rimraf**: 1 file

### Other

- **std-env**: 18 files
- **chalk**: 12 files
- **tinyexec**: 5 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 4 files
- **socket.io-client**: 4 files
- **SemVer**: 3 files
- **.ENV**: 2 files
- **open**: 2 files
- **p-retry**: 2 files
- **signal-exit**: 2 files
- **strip-ansi**: 2 files
- **tar**: 2 files
- **xdg-app-paths**: 2 files
- **ansi-escapes**: 1 file
- **confbox**: 1 file
- **defu**: 1 file
- **eventsource**: 1 file
- **execa**: 1 file
- **ini**: 1 file
- **json-stable-stringify**: 1 file
- **jsonc-parser**: 1 file
- **mlly**: 1 file
- **p-limit**: 1 file
- **supports-color**: 1 file

## Backend (packages/convex)

### Data

- **Convex**: 8 files · [packages/convex/src/client/index.ts, line 8](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/packages/convex/src/client/index.ts#L8)

## Support (packages/convex)

### Testing

- **convex-test**: 1 file
- **Vitest**: 1 file

## Backend (packages/core)

### Sign-in

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

## Support (packages/core)

### Validation

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

### Testing

- **Vitest**: 74 files
- **@epic-web/test-server**: 2 files

### Deploy

- **opentelemetry**: 11 files
- **[prom-client](https://seerepo.com/uses/prom-client)**: 4 files

### Tools

- **esbuild**: 1 file

### Other

- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 22 files
- **nanoid**: 3 files
- **std-env**: 3 files
- **dequal**: 2 files
- **socket.io-client**: 2 files
- **eventsource**: 1 file
- **eventsource-parser**: 1 file
- **humanize-duration**: 1 file
- **superjson**: 1 file
- **tinyexec**: 1 file
- **uncrypto**: 1 file

## Backend (packages/linear)

### AI

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

## Support (packages/linear)

### Testing

- **Vitest**: 2 files

## Support (packages/plugins)

### Other

- **neverthrow**: 2 files

## Support (packages/python)

### Other

- **tinyexec**: 1 file

## Frontend (packages/react-hooks)

### The base

- **[React](https://seerepo.com/uses/react)**: 7 files · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)

## Support (packages/react-hooks)

### Other

- **SWR**: 4 files

## Support (packages/redis-worker)

### Validation

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

### Testing

- **Vitest**: 15 files

### Tools

- **esbuild**: 1 file

### Other

- **nanoid**: 3 files
- **cron-parser**: 1 file
- **p-limit**: 1 file
- **seedrandom**: 1 file

## Support (packages/rsc)

### Other

- **mlly**: 1 file

## Support (packages/schema-to-json)

### Validation

- **@sinclair/typebox**: 1 file
- **arktype**: 1 file
- **[yup](https://seerepo.com/uses/yup)**: 1 file
- **[Zod](https://seerepo.com/uses/zod)**: 1 file
- **[zod-to-json-schema](https://seerepo.com/uses/zod-to-json-schema)**: 1 file

### Other

- **Effect**: 1 file

## Support (packages/slack)

### Testing

- **Vitest**: 2 files

## Frontend (packages/trigger-sdk)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)

## Backend (packages/trigger-sdk)

### Sign-in

- **@aws-sdk/client-sts**: 1 file

### AI

- **@ai-sdk/provider**: 47 files
- **[ai](https://seerepo.com/uses/ai)**: 47 files

## Support (packages/trigger-sdk)

### Validation

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

### Testing

- **Vitest**: 105 files

### Deploy

- **opentelemetry**: 1 file

### Other

- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 9 files
- **uncrypto**: 2 files

## Other repos with a similar stack

- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Redis, React, Express, Postgres, OpenAI, Sentry, react-router-dom, ClickHouse, Anthropic, MCP, Zod, Framer, react-grid-layout, react-hotkeys-hook, input-otp, @tabler/icons-react, jose, ai, react-markdown, opentelemetry, ai-sdk, react-email, nodemailer, @aws-sdk/client-sesv2 · [Compare](https://seerepo.com/compare/triggerdotdev/trigger.dev/vs/twentyhq/twenty)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, lru-cache, OpenAI, Sentry, Anthropic, MCP, Zod, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, CodeMirror, TanStack, @uiw/react-codemirror, react-hotkeys-hook, @lezer/highlight, react-day-picker, Lucide, ai, streamdown, qrcode.react, opentelemetry, Drizzle, ai-sdk · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/triggerdotdev/trigger.dev)
- [reactive-resume/reactive-resume](https://seerepo.com/r/reactive-resume/reactive-resume/built): Redis, React, Postgres, OpenAI, Anthropic, MCP, Zod, Tailwind CSS, class-variance-authority, CodeMirror, TanStack, @lezer/highlight, jose, Better Auth, @ai-sdk/react, ai, qrcode.react, react-markdown, Vercel, Drizzle, ai-sdk, react-email, nodemailer · [Compare](https://seerepo.com/compare/reactive-resume/reactive-resume/vs/triggerdotdev/trigger.dev)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Redis, React, Postgres, OpenAI, Sentry, PostHog, Anthropic, Zod, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, Framer, recharts, sonner, react-day-picker, jose, Better Auth, @ai-sdk/react, ai, streamdown, react-markdown · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/triggerdotdev/trigger.dev)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): React, Express, Postgres, OpenAI, Sentry, react-router-dom, Anthropic, MCP, Zod, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, CodeMirror, @lezer/highlight, Lucide, Better Auth, ai, react-markdown, opentelemetry, Drizzle, @clack/prompts · [Compare](https://seerepo.com/compare/paperclipai/paperclip/vs/triggerdotdev/trigger.dev)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, OpenAI, Sentry, PostHog, MCP, Zod, Tailwind CSS, class-variance-authority, Radix UI, recharts, sonner, input-otp, prism-react-renderer, react-day-picker, @heroicons/react, Lucide, @ai-sdk/react, ai, streamdown, react-markdown, Vercel · [Compare](https://seerepo.com/compare/supabase/supabase/vs/triggerdotdev/trigger.dev)

## Frequently asked questions

### What language is trigger.dev written in?

trigger.dev is written in TypeScript, with 1,285,621 written lines.

### What framework does trigger.dev use?

trigger.dev is built with React, Remix, remix-utils, remix-run, Express, and react-router-dom.

The proof: [in apps/webapp/package.json](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/apps/webapp/package.json)

### What database does trigger.dev use?

trigger.dev stores its data in @aws-sdk/s3-request-presigner, lru-cache, Postgres, ClickHouse, and Convex and reaches it with Prisma and Drizzle.

### What does trigger.dev sign people in with?

trigger.dev signs people in with jose, remix-auth, remix-auth-google, @aws-sdk/client-sts, and Better Auth.

### Does trigger.dev use AI?

Yes. trigger.dev uses AI through @ai-sdk/react, ai, OpenAI, ai-sdk, Anthropic, and @ai-sdk/provider.

### What services does trigger.dev use?

trigger.dev sends email with Resend, measures its use with PostHog, watches its errors with Sentry, connects to GitHub, and uses Redis, GraphQL, and MCP.

The proof: [internal-packages/emails/src/transports/resend.ts, line 3](https://github.com/triggerdotdev/trigger.dev/blob/41ad1995b30573a9b55cfaab80c3293b7c35c1f8/internal-packages/emails/src/transports/resend.ts#L3)

### Does trigger.dev have tests?

Yes. trigger.dev has 1,890 test files and is tested with @playwright/test, Vitest, @testcontainers/postgresql, supertest, jsdom, testcontainers, @epic-web/test-server, and convex-test.

### Which repos have a stack like trigger.dev's?

The ones that share most of its stack: twentyhq/twenty, CherryHQ/cherry-studio, and reactive-resume/reactive-resume.

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