Source: https://seerepo.com/r/bluewave-labs/Checkmate/built
Markdown source: https://seerepo.com/r/bluewave-labs/Checkmate/built.md
Description: Checkmate is a TypeScript repo built with Vite, React, react-router-dom, React Router, and Express. It stores its data in MongoDB.

# What is Checkmate built with?

Checkmate is a TypeScript repo built with Vite, React, react-router-dom, React Router, and Express. It stores its data in MongoDB, signs people in with jsonwebtoken, bcryptjs, helmet, and tough-cookie, makes its content with mjml, nodemailer, handlebars, isomorphic-dompurify, and sharp, validates its data with @hookform/resolvers, Zod, and joi, and deploys with dockerode, pino, and pino-http. It has 100,704 written lines, with 140 test files.

Read on November 12, 2026, at commit 33f48b5.

Repository: https://github.com/bluewave-labs/Checkmate

## Frontend (client)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in client/package.json](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/client/package.json)
- **[React](https://seerepo.com/uses/react)**: 96 files · [in client/package.json](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/client/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 39 files
- **[React Router](https://seerepo.com/uses/react-router)**: 9 files

### Styles

- **[@emotion/react](https://seerepo.com/uses/emotion-react)**: 2 files
- **@csstools/css-tokenizer**: 1 file
- **@fontsource-variable/geist**: 1 file

### Interface

- **[MUI](https://seerepo.com/uses/mui)**: 207 files
- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 30 files
- **[recharts](https://seerepo.com/uses/recharts)**: 11 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 3 files
- **[react-toastify](https://seerepo.com/uses/react-toastify)**: 3 files
- **[@hello-pangea/dnd](https://seerepo.com/uses/hello-pangea-dnd)**: 1 file
- **[MapLibre](https://seerepo.com/uses/maplibre)**: 1 file
- **react-map-gl**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 44 files

## Support (client)

### Validation

- **[@hookform/resolvers](https://seerepo.com/uses/hookform-resolvers)**: 16 files
- **[Zod](https://seerepo.com/uses/zod)**: 16 files
- **[joi](https://seerepo.com/uses/joi)**: 1 file

### Other

- **react-i18next**: 149 files
- **react-redux**: 32 files
- **pretty-bytes**: 10 files
- **dayjs**: 9 files
- **SWR**: 7 files
- **i18next**: 6 files
- **@reduxjs/toolkit**: 3 files
- **Axios**: 3 files
- **redux-persist**: 2 files
- **pretty-ms**: 1 file

## Frontend (server)

### Styles

- **@csstools/css-tokenizer**: 1 file

### Interface

- **swagger-ui-express**: 2 files

## Backend (server)

### The base

- **[Express](https://seerepo.com/uses/express)**: 32 files · [in server/package.json](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/server/package.json)

### Data

- **[MongoDB](https://seerepo.com/uses/mongodb)**: 46 files · [server/src/utils/mongoMappers.ts, line 1](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/server/src/utils/mongoMappers.ts#L1)

### Sign-in

- **[jsonwebtoken](https://seerepo.com/uses/jsonwebtoken)**: 3 files
- **[bcryptjs](https://seerepo.com/uses/bcryptjs)**: 2 files
- **[helmet](https://seerepo.com/uses/helmet)**: 1 file
- **[tough-cookie](https://seerepo.com/uses/tough-cookie)**: 1 file

## Support (server)

### Content

- **mjml**: 2 files
- **[nodemailer](https://seerepo.com/uses/nodemailer)**: 2 files
- **[handlebars](https://seerepo.com/uses/handlebars)**: 1 file
- **[isomorphic-dompurify](https://seerepo.com/uses/isomorphic-dompurify)**: 1 file
- **[sharp](https://seerepo.com/uses/sharp)**: 1 file

### Validation

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

### Deploy

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

### Tools

- **@asteasolutions/zod-to-openapi**: 4 files
- **TypeScript**: 1 file

### Other

- **got**: 22 files
- **gamedig**: 4 files
- **ws**: 4 files
- **cors**: 2 files
- **grpc**: 2 files
- **jmespath**: 2 files
- **multer**: 2 files
- **ping**: 2 files
- **re2**: 2 files
- **whoiser**: 2 files
- **.ENV**: 1 file
- **compression**: 1 file
- **cookie-parser**: 1 file
- **dayjs**: 1 file
- **express-rate-limit**: 1 file
- **hpagent**: 1 file
- **tldts**: 1 file

## Other repos with a similar stack

- [novuhq/novu](https://seerepo.com/r/novuhq/novu/built): Vite, React, react-router-dom, Express, MongoDB, React Hook Form, recharts, Lucide, @hookform/resolvers, Zod, jsonwebtoken, helmet, nodemailer, handlebars, sharp, pino · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/novuhq/novu)
- [ruvnet/ruflo](https://seerepo.com/r/ruvnet/ruflo/built): Vite, React, react-router-dom, Express, MongoDB, React Hook Form, recharts, Lucide, Zod, bcryptjs, helmet, handlebars, isomorphic-dompurify, sharp, pino · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/ruvnet/ruflo)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): Vite, React, React Router, Express, React Hook Form, recharts, dnd-kit, Lucide, @hookform/resolvers, Zod, jsonwebtoken, nodemailer, handlebars, sharp · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/TryGhost/Ghost)
- [RocketChat/Rocket.Chat](https://seerepo.com/r/RocketChat/Rocket.Chat/built): Vite, React, react-router-dom, Express, MongoDB, React Hook Form, @hello-pangea/dnd, Zod, swagger-ui-express, nodemailer, sharp, pino · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/RocketChat/Rocket.Chat)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Vite, React, react-router-dom, Express, dnd-kit, Lucide, Zod, sharp, pino, pino-http · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/paperclipai/paperclip)
- [strapi/strapi](https://seerepo.com/r/strapi/strapi/built): Vite, React, react-router-dom, dnd-kit, Zod, jsonwebtoken, bcryptjs, nodemailer, handlebars, sharp · [Compare](https://seerepo.com/compare/bluewave-labs/Checkmate/vs/strapi/strapi)

## Frequently asked questions

### What language is Checkmate written in?

Checkmate is written in TypeScript, with 100,704 written lines.

### What framework does Checkmate use?

Checkmate is built with Vite, React, react-router-dom, React Router, and Express.

The proof: [in client/package.json](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/client/package.json)

### What database does Checkmate use?

Checkmate stores its data in MongoDB.

The proof: [server/src/utils/mongoMappers.ts, line 1](https://github.com/bluewave-labs/Checkmate/blob/33f48b5e5475ffe60c63de1fed1700d096c47199/server/src/utils/mongoMappers.ts#L1)

### What does Checkmate sign people in with?

Checkmate signs people in with jsonwebtoken, bcryptjs, helmet, and tough-cookie.

### Does Checkmate have tests?

Yes. Checkmate has 140 test files.

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

The ones that share most of its stack: novuhq/novu, ruvnet/ruflo, and TryGhost/Ghost.

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