Source: https://seerepo.com/r/NginxProxyManager/nginx-proxy-manager/built
Markdown source: https://seerepo.com/r/NginxProxyManager/nginx-proxy-manager/built.md
Description: nginx-proxy-manager is a TypeScript repo built with Express, Vite, React, and react-router-dom. It reaches it with knex.

# What is nginx-proxy-manager built with?

nginx-proxy-manager is a TypeScript repo built with Express, Vite, React, and react-router-dom. It reaches it with knex, signs people in with bcrypt, jsonwebtoken, otplib, and generate-password-browser, makes its content with liquidjs, react-markdown, and react-qr-code, validates its data with Ajv and apidevtools, and is tested with Vitest and Testing Library. It has 30,026 written lines, with 36 test files.

Read on November 7, 2026, at commit ea7e746.

Repository: https://github.com/NginxProxyManager/nginx-proxy-manager

## Backend (backend)

### The base

- **[Express](https://seerepo.com/uses/express)**: 17 files · [in backend/package.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/ea7e7468dfa65237008a05e0b2a9c3d407fe8278/backend/package.json)

### Data access

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

### Sign-in

- **[bcrypt](https://seerepo.com/uses/bcrypt)**: 2 files
- **[jsonwebtoken](https://seerepo.com/uses/jsonwebtoken)**: 1 file
- **[otplib](https://seerepo.com/uses/otplib)**: 1 file

## Support (backend)

### Content

- **liquidjs**: 1 file

### Validation

- **[Ajv](https://seerepo.com/uses/ajv)**: 3 files
- **apidevtools**: 1 file

### Tools

- **signale**: 1 file

### Other

- **Lodash**: 16 files
- **proxy-agent**: 3 files
- **moment**: 2 files
- **archiver**: 1 file
- **body-parser**: 1 file
- **chalk**: 1 file
- **compression**: 1 file
- **gravatar**: 1 file
- **node-rsa**: 1 file
- **path**: 1 file

## Frontend (frontend)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in frontend/package.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/ea7e7468dfa65237008a05e0b2a9c3d407fe8278/frontend/package.json)
- **[React](https://seerepo.com/uses/react)**: 56 files · [in frontend/package.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/ea7e7468dfa65237008a05e0b2a9c3d407fe8278/frontend/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 4 files

### Styles

- **[classnames](https://seerepo.com/uses/classnames)**: 22 files
- **@tabler/core**: 1 file

### Interface

- **react-bootstrap**: 34 files
- **[Formik](https://seerepo.com/uses/formik)**: 26 files
- **@tanstack/react-table**: 14 files
- **@uiw/react-textarea-code-editor**: 6 files
- **[react-select](https://seerepo.com/uses/react-select)**: 4 files
- **react-toastify**: 2 files

### Icons

- **[@tabler/icons-react](https://seerepo.com/uses/tabler-icons-react)**: 33 files
- **country-flag-icons**: 1 file

## Backend (frontend)

### Sign-in

- **generate-password-browser**: 1 file

## Support (frontend)

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **react-qr-code**: 1 file

### Testing

- **Vitest**: 8 files
- **Testing Library**: 5 files

### Tools

- **@tanstack/react-query-devtools**: 1 file

### Other

- **[TanStack](https://seerepo.com/uses/tanstack)**: 39 files
- **date-fns**: 4 files
- **humps**: 2 files
- **react-intl**: 2 files
- **query-string**: 1 file
- **rooks**: 1 file
- **tmp**: 1 file

## Other repos with a similar stack

- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Express, Vite, React, react-router-dom, bcrypt, jsonwebtoken, otplib, @tabler/icons-react, country-flag-icons, react-markdown, react-qr-code · [Compare](https://seerepo.com/compare/NginxProxyManager/nginx-proxy-manager/vs/twentyhq/twenty)
- [ToolJet/ToolJet](https://seerepo.com/r/ToolJet/ToolJet/built): Express, React, react-router-dom, knex, bcrypt, Ajv, classnames, react-bootstrap, react-select, @tabler/icons-react, react-markdown · [Compare](https://seerepo.com/compare/NginxProxyManager/nginx-proxy-manager/vs/ToolJet/ToolJet)
- [strapi/strapi](https://seerepo.com/r/strapi/strapi/built): Vite, React, react-router-dom, knex, jsonwebtoken, Ajv, Formik, react-select, react-markdown · [Compare](https://seerepo.com/compare/NginxProxyManager/nginx-proxy-manager/vs/strapi/strapi)
- [novuhq/novu](https://seerepo.com/r/novuhq/novu/built): Express, Vite, React, react-router-dom, bcrypt, jsonwebtoken, liquidjs, Ajv, react-qr-code · [Compare](https://seerepo.com/compare/NginxProxyManager/nginx-proxy-manager/vs/novuhq/novu)
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/built): Express, Vite, React, knex, jsonwebtoken, otplib, Ajv, country-flag-icons · [Compare](https://seerepo.com/compare/NginxProxyManager/nginx-proxy-manager/vs/TryGhost/Ghost)
- [appsmithorg/appsmith](https://seerepo.com/r/appsmithorg/appsmith/built): Express, React, react-router-dom, classnames, react-toastify, @tabler/icons-react, react-markdown · [Compare](https://seerepo.com/compare/appsmithorg/appsmith/vs/NginxProxyManager/nginx-proxy-manager)

## Frequently asked questions

### What language is nginx-proxy-manager written in?

nginx-proxy-manager is written in TypeScript, with 30,026 written lines.

### What framework does nginx-proxy-manager use?

nginx-proxy-manager is built with Express, Vite, React, and react-router-dom.

The proof: [in backend/package.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/ea7e7468dfa65237008a05e0b2a9c3d407fe8278/backend/package.json)

### What does nginx-proxy-manager sign people in with?

nginx-proxy-manager signs people in with bcrypt, jsonwebtoken, otplib, and generate-password-browser.

### Does nginx-proxy-manager have tests?

Yes. nginx-proxy-manager has 36 test files and is tested with Vitest and Testing Library.

### Which repos have a stack like nginx-proxy-manager's?

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

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