Source: https://seerepo.com/r/rmyndharis/OpenWA/built
Markdown source: https://seerepo.com/r/rmyndharis/OpenWA/built.md
Description: OpenWA is a TypeScript repo built with Express, @nestjs/core, and NestJS. It stores its data in bullmq, @nestjs/bullmq, and Postgres.

# What is OpenWA built with?

OpenWA is a TypeScript repo built with Express, @nestjs/core, and NestJS. It stores its data in bullmq, @nestjs/bullmq, and Postgres, reaches it with TypeORM and @nestjs/typeorm, signs people in with helmet, makes its content with qrcode and sharp, validates its data with class-validator, class-transformer, and Zod, is tested with @nestjs/testing, supertest, org.junit.jupiter:junit-jupiter, and Vitest, deploys with dockerode, and uses Redis and MCP. It has 488,202 written lines, with 1,134 test files.

Read on November 7, 2026, at commit 79d7f86.

Repository: https://github.com/rmyndharis/OpenWA

## Backend (/)

### The base

- **[Express](https://seerepo.com/uses/express)**: 21 files
- **[@nestjs/core](https://seerepo.com/uses/nestjs-core)**: 15 files

### Data

- **[bullmq](https://seerepo.com/uses/bullmq)**: 9 files
- **@nestjs/bullmq**: 8 files
- **[Redis](https://seerepo.com/uses/redis)**: 3 files · [src/common/cache/cache.service.ts, line 3](https://github.com/rmyndharis/OpenWA/blob/79d7f865e0518cb2d210deb28a84dcb0f4f39e66/src/common/cache/cache.service.ts#L3)
- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [src/database/pg-boot-migrations.ts, line 1](https://github.com/rmyndharis/OpenWA/blob/79d7f865e0518cb2d210deb28a84dcb0f4f39e66/src/database/pg-boot-migrations.ts#L1)

### Data access

- **TypeORM**: 139 files
- **@nestjs/typeorm**: 63 files

### Sign-in

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

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [src/modules/mcp/mcp.server.ts, line 4](https://github.com/rmyndharis/OpenWA/blob/79d7f865e0518cb2d210deb28a84dcb0f4f39e66/src/modules/mcp/mcp.server.ts#L4)

## Support (/)

### The base

- **[NestJS](https://seerepo.com/uses/nestjs)**: 276 files · [in package.json](https://github.com/rmyndharis/OpenWA/blob/79d7f865e0518cb2d210deb28a84dcb0f4f39e66/package.json)

### Content

- **[qrcode](https://seerepo.com/uses/qrcode)**: 2 files
- **[sharp](https://seerepo.com/uses/sharp)**: 1 file

### Validation

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

### Testing

- **@nestjs/testing**: 69 files
- **supertest**: 38 files
- **org.junit.jupiter:junit-jupiter**: 27 files

### Deploy

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

### Tools

- **TypeScript**: 4 files
- **typing-extensions**: 1 file

### Other

- **reflect-metadata**: 62 files
- **[Google](https://seerepo.com/uses/google)**: 23 files
- **@whiskeysockets/baileys**: 20 files
- **@nestjs/throttler**: 10 files
- **undici**: 5 files
- **.ENV**: 4 files
- **rxjs**: 3 files
- **guzzlehttp/guzzle**: 2 files
- **httpx**: 2 files
- **Socket.io**: 2 files
- **adm-zip**: 1 file
- **bull-board**: 1 file
- **https-proxy-agent**: 1 file
- **socks**: 1 file
- **socks-proxy-agent**: 1 file
- **tar-stream**: 1 file

## Support (sdk/javascript)

### Testing

- **Vitest**: 6 files

## Other repos with a similar stack

- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Express, @nestjs/core, bullmq, Redis, Postgres, MCP, NestJS, TypeORM, @nestjs/typeorm, sharp, class-validator, class-transformer, Zod · [Compare](https://seerepo.com/compare/rmyndharis/OpenWA/vs/twentyhq/twenty)
- [ToolJet/ToolJet](https://seerepo.com/r/ToolJet/ToolJet/built): Express, @nestjs/core, bullmq, Redis, Postgres, NestJS, TypeORM, @nestjs/typeorm, helmet, qrcode, class-validator, class-transformer · [Compare](https://seerepo.com/compare/rmyndharis/OpenWA/vs/ToolJet/ToolJet)
- [novuhq/novu](https://seerepo.com/r/novuhq/novu/built): Express, @nestjs/core, bullmq, Redis, MCP, NestJS, helmet, qrcode, sharp, class-validator, class-transformer, Zod · [Compare](https://seerepo.com/compare/novuhq/novu/vs/rmyndharis/OpenWA)
- [immich-app/immich](https://seerepo.com/r/immich-app/immich/built): Express, @nestjs/core, bullmq, @nestjs/bullmq, Redis, Postgres, NestJS, helmet, qrcode, sharp, Zod · [Compare](https://seerepo.com/compare/immich-app/immich/vs/rmyndharis/OpenWA)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): @nestjs/core, Redis, Postgres, NestJS, helmet, qrcode, sharp, class-validator, class-transformer, Zod · [Compare](https://seerepo.com/compare/calcom/cal.diy/vs/rmyndharis/OpenWA)
- [gitroomhq/postiz-app](https://seerepo.com/r/gitroomhq/postiz-app/built): @nestjs/core, Redis, Postgres, MCP, NestJS, qrcode, sharp, class-validator, class-transformer, Zod · [Compare](https://seerepo.com/compare/gitroomhq/postiz-app/vs/rmyndharis/OpenWA)

## Frequently asked questions

### What language is OpenWA written in?

OpenWA is written in TypeScript, with 488,202 written lines.

### What framework does OpenWA use?

OpenWA is built with Express, @nestjs/core, and NestJS.

### What database does OpenWA use?

OpenWA stores its data in bullmq, @nestjs/bullmq, and Postgres and reaches it with TypeORM and @nestjs/typeorm.

### What does OpenWA sign people in with?

OpenWA signs people in with helmet.

### What services does OpenWA use?

OpenWA uses Redis and MCP.

The proof: [src/common/cache/cache.service.ts, line 3](https://github.com/rmyndharis/OpenWA/blob/79d7f865e0518cb2d210deb28a84dcb0f4f39e66/src/common/cache/cache.service.ts#L3)

### Does OpenWA have tests?

Yes. OpenWA has 1,134 test files and is tested with @nestjs/testing, supertest, org.junit.jupiter:junit-jupiter, and Vitest.

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

The ones that share most of its stack: twentyhq/twenty, ToolJet/ToolJet, and novuhq/novu.

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