Source: https://seerepo.com/r/different-ai/openwork/built
Markdown source: https://seerepo.com/r/different-ai/openwork/built.md
Description: openwork is a TypeScript repo built with Vite, React Router, React, Electron, Next.js, and 1 more. It reaches it with Drizzle.

# What is openwork built with?

openwork is a TypeScript repo built with Vite, React Router, React, Electron, Next.js, and 1 more. It reaches it with Drizzle, signs people in with Better Auth and jose, takes payments with Stripe, sends email with Resend, uses AI through ai and @ai-sdk/provider, measures its use with PostHog, watches its errors with Sentry, makes its content with marked, dompurify, shiki, htmlparser2, katex, and 6 more, validates its data with Zod, Ajv, and @standard-schema/spec, is tested with @happy-dom/global-registrator and Vitest, deploys with @hono/node-server and opentelemetry, and uses MCP, Redis, MySQL, PlanetScale, and Vercel. It has 3,280 files and 954,486 written lines, with 822 test files.

Read on November 4, 2026, at commit 2fff515.

Repository: https://github.com/different-ai/openwork

## Support (/)

### Tools

- **TypeScript**: 2 files

## Frontend (apps/app)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/mcp-apps/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/mcp-apps/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 32 files
- **[React](https://seerepo.com/uses/react)**: 11 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

### Styles

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

### Interface

- **motion**: 5 files
- **sonner**: 4 files
- **CodeMirror**: 2 files
- **lexical**: 2 files
- **@tanstack/react-virtual**: 1 file
- **Mermaid**: 1 file
- **xterm**: 1 file

### Icons

- **Lucide**: 171 files
- **@heroicons/react**: 2 files

## Backend (apps/app)

### AI

- **ai**: 62 files

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (apps/app)

### Content

- **marked**: 3 files
- **[dompurify](https://seerepo.com/uses/dompurify)**: 2 files
- **shiki**: 2 files
- **htmlparser2**: 1 file
- **katex**: 1 file

### Validation

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

### Testing

- **@happy-dom/global-registrator**: 73 files

### Tools

- **TypeScript**: 1 file

### Other

- **TanStack**: 46 files
- **zustand**: 33 files
- **fuzzysort**: 7 files
- **jsonc-parser**: 6 files
- **pierre**: 2 files
- **clsx**: 1 file

## Backend (apps/desktop)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)
- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [apps/desktop/electron/sentry.mjs, line 131](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/desktop/electron/sentry.mjs#L131)

## Support (apps/desktop)

### The base

- **Electron**: 6 files

### Validation

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

### Tools

- **electron-builder**: 1 file

### Other

- **electron-updater**: 1 file

## Frontend (apps/review)

### The base

- **[React](https://seerepo.com/uses/react)**: 9 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 3 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Backend (apps/server)

### Data access

- **Drizzle**: 2 files

### AI

- **@ai-sdk/provider**: 1 file

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 2 files · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (apps/server)

### Content

- **yaml**: 1 file

### Validation

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

### Testing

- **Vitest**: 4 files

### Tools

- **acorn**: 1 file

### Other

- **jsonc-parser**: 3 files
- **undici**: 2 files
- **Effect**: 1 file
- **minimatch**: 1 file

## Frontend (ee/apps/den-api)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Backend (ee/apps/den-api)

### Data

- **[Redis](https://seerepo.com/uses/redis)**: 3 files · [ee/apps/den-api/src/cache.ts, line 8](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/den-api/src/cache.ts#L8)

### Sign-in

- **Better Auth**: 8 files
- **jose**: 3 files

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 31 files · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)
- **[Sentry](https://seerepo.com/uses/sentry)**: 2 files · [apps/desktop/electron/sentry.mjs, line 131](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/desktop/electron/sentry.mjs#L131)
- **[Stripe](https://seerepo.com/uses/stripe)**: 1 file · [ee/apps/den-api/src/stripe-billing.ts, line 3](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/den-api/src/stripe-billing.ts#L3)

## Support (ee/apps/den-api)

### The base

- **Hono**: 141 files

### Content

- **sharp**: 2 files
- **fast-xml-parser**: 1 file
- **htmlparser2**: 1 file
- **sanitize-html**: 1 file

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 170 files
- **@standard-schema/spec**: 1 file

### Deploy

- **@hono/node-server**: 2 files
- **opentelemetry**: 1 file

### Tools

- **esbuild**: 1 file
- **TypeScript**: 1 file

### Other

- **Effect**: 4 files
- **nanoid**: 2 files
- **undici**: 2 files
- **.ENV**: 1 file
- **botid**: 1 file
- **jsonc-parser**: 1 file
- **OpenTelemetry**: 1 file

## Support (ee/apps/den-gateway)

### The base

- **Hono**: 1 file

### Validation

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

### Deploy

- **@hono/node-server**: 1 file

### Other

- **.ENV**: 1 file
- **undici**: 1 file

## Frontend (ee/apps/den-web)

### The base

- **[React](https://seerepo.com/uses/react)**: 262 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 171 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **recharts**: 3 files
- **cmdk**: 2 files

### Icons

- **Lucide**: 189 files

## Backend (ee/apps/den-web)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 6 files · [apps/desktop/electron/sentry.mjs, line 131](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/desktop/electron/sentry.mjs#L131)
- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [ee/apps/den-web/instrumentation-client.ts, line 2](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/den-web/instrumentation-client.ts#L2)

## Support (ee/apps/den-web)

### Validation

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

### Deploy

- **opentelemetry**: 1 file

### Other

- **TanStack**: 50 files
- **OpenTelemetry**: 2 files

## Frontend (ee/apps/diagnostics)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: 4 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)
- **[React](https://seerepo.com/uses/react)**: 1 file · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Support (ee/apps/enterprise-mock-lab)

### The base

- **Hono**: 1 file

### Validation

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

### Deploy

- **@hono/node-server**: 1 file

## Backend (ee/apps/gateway)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 5 files · [apps/desktop/electron/sentry.mjs, line 131](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/desktop/electron/sentry.mjs#L131)

## Support (ee/apps/gateway)

### The base

- **Hono**: 13 files

### Validation

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

### Deploy

- **@hono/node-server**: 2 files

### Other

- **.ENV**: 1 file

## Backend (ee/apps/headless-runner)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (ee/apps/headless-runner)

### The base

- **Hono**: 2 files

### Validation

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

### Deploy

- **@hono/node-server**: 1 file

### Other

- **aws4fetch**: 1 file
- **Axios**: 1 file

## Frontend (ee/apps/landing)

### The base

- **[React](https://seerepo.com/uses/react)**: [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 22 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **Framer**: 3 files

### Icons

- **Lucide**: 25 files

## Support (ee/apps/landing)

### Other

- **botid**: 2 files

## Frontend (ee/apps/workbot)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)
- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in packages/mcp-apps/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/mcp-apps/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

## Backend (ee/apps/workbot)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)
- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [apps/desktop/electron/sentry.mjs, line 131](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/desktop/electron/sentry.mjs#L131)

## Support (ee/apps/workbot)

### The base

- **Hono**: 4 files

### Validation

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

### Deploy

- **@hono/node-server**: 1 file

### Other

- **TanStack**: 1 file

## Backend (ee/packages/den-admin-mcp)

### Data

- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [ee/packages/den-admin-mcp/index.mjs, line 20](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/packages/den-admin-mcp/index.mjs#L20)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (ee/packages/den-admin-mcp)

### Validation

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

## Backend (ee/packages/den-db)

### Data

- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [ee/packages/den-admin-mcp/index.mjs, line 20](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/packages/den-admin-mcp/index.mjs#L20)
- **PlanetScale**: 1 file · [ee/packages/den-db/src/client.ts, line 1](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/packages/den-db/src/client.ts#L1)

### Data access

- **Drizzle**: 63 files

## Support (ee/packages/headless-computer)

### Validation

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

### Tools

- **esbuild**: 2 files

### Other

- **ws**: 1 file

## Support (ee/packages/headless-protocol)

### Validation

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

## Support (ee/packages/telemetry-contracts)

### Validation

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

## Support (ee/packages/utils)

### Validation

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

### Other

- **luxon**: 1 file
- **uuid**: 1 file

## Support (ee/packages/workbot-server)

### Validation

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

## Frontend (ee/packages/workbot-ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 22 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

### Icons

- **Lucide**: 15 files

## Support (ee/packages/workbot-ui)

### Content

- **marked**: 1 file

### Validation

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

### Other

- **TanStack**: 7 files
- **@novnc/novnc**: 1 file
- **fuzzysort**: 1 file

## Support (packages/automations)

### Validation

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

## Support (packages/calendar)

### Validation

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

### Other

- **TanStack**: 1 file

## Support (packages/codemode)

### Tools

- **acorn**: 2 files
- **TypeScript**: 1 file

### Other

- **Effect**: 9 files

## Support (packages/computer-use)

### Validation

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

### Other

- **Effect**: 1 file

## Support (packages/connect-link)

### Validation

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

## Frontend (packages/documents)

### The base

- **[React](https://seerepo.com/uses/react)**: 8 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

### Icons

- **Lucide**: 6 files

## Support (packages/documents)

### Content

- **htmlparser2**: 1 file

### Validation

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

### Other

- **TanStack**: 3 files

## Frontend (packages/email)

### The base

- **[React](https://seerepo.com/uses/react)**: 7 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Backend (packages/email)

### Services

- **[Resend](https://seerepo.com/uses/resend)**: 1 file · [packages/email/src/send-email.ts, line 3](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/email/src/send-email.ts#L3)

## Support (packages/email)

### Content

- **react-email**: 8 files
- **nodemailer**: 2 files

## Backend (packages/enterprise-mcp-client)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 8 files · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (packages/enterprise-mcp-client)

### Validation

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

## Support (packages/enterprise-mcp-mock-server)

### Validation

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

## Support (packages/features)

### Validation

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

## Support (packages/headless-threads)

### Validation

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

## Support (packages/install-config)

### Validation

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

## Backend (packages/managed-deployments)

### Sign-in

- **jose**: 1 file

## Support (packages/managed-deployments)

### Content

- **fast-xml-parser**: 1 file

### Validation

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

## Frontend (packages/mcp-apps)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/mcp-apps/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/mcp-apps/package.json)
- **[React](https://seerepo.com/uses/react)**: 2 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Backend (packages/mcp-apps)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (packages/mcp-apps)

### Validation

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

## Backend (packages/openwork-ui-mcp)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/app/src/components/chat/mcp-app-frame.tsx, line 5](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/apps/app/src/components/chat/mcp-app-frame.tsx#L5)

## Support (packages/openwork-ui-mcp)

### Validation

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

## Frontend (packages/presentation)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Backend (packages/review)

### Data

- **Vercel**: 1 file · [packages/review/src/storage.ts, line 4](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/review/src/storage.ts#L4)

## Support (packages/review)

### Validation

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

## Support (packages/sdk)

### Tools

- **Prettier**: 1 file

## Support (packages/types)

### Validation

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

## Frontend (packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 7 files · [in ee/apps/diagnostics/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/diagnostics/package.json)

## Support (packages/ui)

### Tools

- **tsup**: 1 file

## Support (packages/workbook)

### Content

- **htmlparser2**: 1 file

## Support (scenarios)

### Testing

- **Vitest**: 3 files

## Other repos with a similar stack

- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Sentry, Next.js, Redis, Stripe, PostHog, Tailwind CSS, class-variance-authority, tailwind-merge, motion, sonner, @tanstack/react-virtual, ai, shiki, katex, Zod, Better Auth, jose, recharts, cmdk, Framer · [Compare](https://seerepo.com/compare/different-ai/openwork/vs/Significant-Gravitas/AutoGPT)
- [langgenius/dify](https://seerepo.com/r/langgenius/dify/built): Vite, React, Sentry, Next.js, Redis, Hono, MySQL, Resend, Tailwind CSS, class-variance-authority, motion, lexical, @tanstack/react-virtual, @heroicons/react, dompurify, katex, Zod, Ajv, yaml, sharp, @hono/node-server · [Compare](https://seerepo.com/compare/different-ai/openwork/vs/langgenius/dify)
- [NousResearch/hermes-agent](https://seerepo.com/r/NousResearch/hermes-agent/built): Vite, React Router, React, Electron, Tailwind CSS, class-variance-authority, tailwind-merge, motion, CodeMirror, @tanstack/react-virtual, xterm, Lucide, dompurify, shiki, katex, Zod, yaml, cmdk · [Compare](https://seerepo.com/compare/different-ai/openwork/vs/NousResearch/hermes-agent)
- [n8n-io/n8n](https://seerepo.com/r/n8n-io/n8n/built): Vite, MCP, Sentry, Redis, PostHog, MySQL, CodeMirror, ai, katex, Zod, Ajv, yaml, jose, sanitize-html, opentelemetry, nodemailer · [Compare](https://seerepo.com/compare/different-ai/openwork/vs/n8n-io/n8n)
- [shadcn-ui/ui](https://seerepo.com/r/shadcn-ui/ui/built): Vite, React Router, React, MCP, Next.js, Vercel, Tailwind CSS, class-variance-authority, motion, sonner, Lucide, ai, shiki, Zod, recharts, cmdk · [Compare](https://seerepo.com/compare/different-ai/openwork/vs/shadcn-ui/ui)
- [anomalyco/opencode](https://seerepo.com/r/anomalyco/opencode/built): Vite, MCP, Sentry, Electron, Hono, Tailwind CSS, marked, dompurify, htmlparser2, katex, Zod, Drizzle, yaml, jose, @standard-schema/spec · [Compare](https://seerepo.com/compare/anomalyco/opencode/vs/different-ai/openwork)

## Frequently asked questions

### What language is openwork written in?

openwork is written in TypeScript: 3,280 files and 954,486 written lines.

### What framework does openwork use?

openwork is built with Vite, React Router, React, Electron, Next.js, and Hono.

The proof: [in packages/mcp-apps/package.json](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/mcp-apps/package.json)

### What does openwork sign people in with?

openwork signs people in with Better Auth and jose.

### What does openwork take payments with?

openwork takes payments with Stripe.

The proof: [ee/apps/den-api/src/stripe-billing.ts, line 3](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/ee/apps/den-api/src/stripe-billing.ts#L3)

### Does openwork use AI?

Yes. openwork uses AI through ai and @ai-sdk/provider.

### What services does openwork use?

openwork sends email with Resend, measures its use with PostHog, watches its errors with Sentry, and uses MCP, Redis, MySQL, PlanetScale, and Vercel.

The proof: [packages/email/src/send-email.ts, line 3](https://github.com/different-ai/openwork/blob/2fff515e6b6cab8a362dcbfff6b0fac983696bf2/packages/email/src/send-email.ts#L3)

### Does openwork have tests?

Yes. openwork has 822 test files and is tested with @happy-dom/global-registrator and Vitest.

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

The ones that share most of its stack: Significant-Gravitas/AutoGPT, langgenius/dify, and NousResearch/hermes-agent.

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