Source: https://seerepo.com/r/wasp-lang/wasp/built
Markdown source: https://seerepo.com/r/wasp-lang/wasp/built.md
Description: wasp is a TypeScript repo built with React, React Router, Vite, and Express. It stores its data in Postgres and reaches it with Prisma.

# What is wasp built with?

wasp is a TypeScript repo built with React, React Router, Vite, and Express. It stores its data in Postgres, reaches it with Prisma, signs people in with arctic, helmet, oslo, and @node-rs/argon2, sends email with Resend, makes its content with nodemailer and toml, validates its data with Zod, is tested with Vitest, and deploys with morgan. It has 90,344 written lines, with 200 test files.

Read on November 6, 2026, at commit ca39410.

Repository: https://github.com/wasp-lang/wasp

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 12 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 10 files
- **[Vite](https://seerepo.com/uses/vite)**: 4 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)

### Interface

- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 3 files

## Backend (/)

### The base

- **[Express](https://seerepo.com/uses/express)**: 25 files · [in packages/studio/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/package.json)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [waspc/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts, line 1](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/waspc/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts#L1)

### Data access

- **[Prisma](https://seerepo.com/uses/prisma)**: 7 files

### Sign-in

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

### Services

- **[Resend](https://seerepo.com/uses/resend)**: 1 file · [waspc/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts, line 1](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/waspc/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts#L1)

## Support (/)

### Content

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

### Validation

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

### Deploy

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

### Tools

- **@rollup/plugin-node-resolve**: 1 file
- **@vitejs/plugin-react**: 1 file
- **rollup-plugin-esbuild**: 1 file

### Other

- **Socket.io**: 2 files
- **superjson**: 2 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 2 files
- **.ENV**: 1 file
- **cookie-parser**: 1 file
- **cors**: 1 file
- **ky**: 1 file
- **socket.io-client**: 1 file

## Frontend (packages/deploy)

### Interface

- **Inquirer**: 2 files

## Support (packages/deploy)

### Content

- **toml**: 1 file

### Validation

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

### Testing

- **Vitest**: 12 files

### Tools

- **zx**: 13 files
- **commander**: 4 files

### Other

- **SemVer**: 3 files

## Frontend (packages/libs/auth)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)

## Backend (packages/libs/auth)

### Sign-in

- **oslo**: 2 files
- **@node-rs/argon2**: 1 file

## Support (packages/libs/auth)

### Testing

- **Vitest**: 3 files

## Frontend (packages/libs/sdk-core)

### The base

- **[React](https://seerepo.com/uses/react)**: 7 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)
- **[Vite](https://seerepo.com/uses/vite)**: 5 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)
- **[React Router](https://seerepo.com/uses/react-router)**: 2 files

### Interface

- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 1 file

## Backend (packages/libs/sdk-core)

### The base

- **[Express](https://seerepo.com/uses/express)**: 4 files · [in packages/studio/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/package.json)

### Sign-in

- **arctic**: 1 file

## Support (packages/libs/sdk-core)

### Validation

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

### Testing

- **Vitest**: 1 file

### Tools

- **@vitejs/plugin-react**: 1 file
- **dotenv-expand**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 4 files
- **.ENV**: 1 file
- **ky**: 1 file
- **mitt**: 1 file
- **superjson**: 1 file

## Frontend (packages/libs/vite-ssr)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: 5 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)

## Support (packages/spec)

### Testing

- **Vitest**: 11 files

### Tools

- **Rolldown**: 11 files
- **TypeScript**: 2 files
- **estree-util-scope**: 1 file
- **estree-walker**: 1 file
- **type-fest**: 1 file

### Other

- **es-toolkit**: 1 file
- **unrun**: 1 file

## Backend (packages/studio)

### The base

- **[Express](https://seerepo.com/uses/express)**: 1 file · [in packages/studio/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/package.json)

## Support (packages/studio)

### Deploy

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

### Tools

- **commander**: 1 file

### Other

- **cors**: 1 file
- **Socket.io**: 1 file

## Frontend (packages/studio/client)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)
- **[React](https://seerepo.com/uses/react)**: 5 files · [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)

### Styles

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

### Interface

- **reactflow**: 11 files
- **HeroUI**: 3 files
- **elkjs**: 1 file

## Support (packages/studio/client)

### Other

- **socket.io-client**: 1 file

## Support (packages/wasp-app-runner)

### Tools

- **@commander-js/extra-typings**: 1 file

### Other

- **chalk**: 1 file
- **p-retry**: 1 file
- **SemVer**: 1 file

## Other repos with a similar stack

- [ruvnet/ruflo](https://seerepo.com/r/ruvnet/ruflo/built): React, Vite, Express, Postgres, React Hook Form, helmet, Zod, Tailwind CSS, reactflow · [Compare](https://seerepo.com/compare/ruvnet/ruflo/vs/wasp-lang/wasp)
- [immich-app/immich](https://seerepo.com/r/immich-app/immich/built): React, Vite, Express, Postgres, helmet, nodemailer, Zod, Tailwind CSS · [Compare](https://seerepo.com/compare/immich-app/immich/vs/wasp-lang/wasp)
- [hoppscotch/hoppscotch](https://seerepo.com/r/hoppscotch/hoppscotch/built): Vite, Express, Postgres, Prisma, nodemailer, Zod, morgan, Tailwind CSS · [Compare](https://seerepo.com/compare/hoppscotch/hoppscotch/vs/wasp-lang/wasp)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): React, React Router, Vite, Express, React Hook Form, nodemailer, Zod, Tailwind CSS · [Compare](https://seerepo.com/compare/TryGhost/Ghost/vs/wasp-lang/wasp)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): React, Postgres, React Hook Form, Prisma, helmet, nodemailer, Zod, Tailwind CSS · [Compare](https://seerepo.com/compare/calcom/cal.diy/vs/wasp-lang/wasp)
- [langgenius/dify](https://seerepo.com/r/langgenius/dify/built): React, Vite, Postgres, Resend, Zod, Tailwind CSS, elkjs · [Compare](https://seerepo.com/compare/langgenius/dify/vs/wasp-lang/wasp)

## Frequently asked questions

### What language is wasp written in?

wasp is written in TypeScript, with 90,344 written lines.

### What framework does wasp use?

wasp is built with React, React Router, Vite, and Express.

The proof: [in packages/studio/client/package.json](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/packages/studio/client/package.json)

### What database does wasp use?

wasp stores its data in Postgres and reaches it with Prisma.

The proof: [waspc/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts, line 1](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/waspc/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts#L1)

### What does wasp sign people in with?

wasp signs people in with arctic, helmet, oslo, and @node-rs/argon2.

### What services does wasp use?

wasp sends email with Resend.

The proof: [waspc/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts, line 1](https://github.com/wasp-lang/wasp/blob/ca394109f549e671ae4ecd0e2c90285504026361/waspc/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts#L1)

### Does wasp have tests?

Yes. wasp has 200 test files and is tested with Vitest.

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

The ones that share most of its stack: ruvnet/ruflo, immich-app/immich, and hoppscotch/hoppscotch.

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