Express vs NestJS
Two sides of the backend framework decision: minimal router and structured TypeScript. When each fits, what it costs, who moves from one to the other, and what makers who chose it say.
Which fits you
- You want a Node.js API server with schema validation and good throughput
Use it whenYou're following a tutorial or need a specific Express middleware.
Trade-offOlder design; types, validation and structure are all up to you.
- Your TypeScript API will grow many domains and you want enforced structure
Use it whenYour API will grow many domains and you want Angular-style structure.
Trade-offMore boilerplate and ceremony than a solo project usually needs.
At a glance
| Used by | 3 makers' products · 361 open-source projects | 21 makers' products · 62 open-source projects |
|---|---|---|
| Moved to it on GitHubpull requests since Oct 2024 | fewer than 3 | 6+ from Express |
| Downloads | 124.8M/wk−26% vs npm | 14.4M/wk−29% vs npm |
| Pricing | Free (open source). | Free (open source); paid enterprise support and courses available separately. |
| Free tier | Yes | Yes |
| Open source | Yes · self-hostable | Yes · self-hostable |
Who moves from one to the other
Public pull requests on GitHub since Oct 2024 whose title says "Express to NestJS" or the reverse — real code changes, by developers in general rather than makers only.
- Migrate the API from Express to NestJSmahyudi-fitri/moneypilot · 2026-09-28
- Migrate API from Express to NestJS + TypeScriptKathiravan292/blogserver · 2026-09-24
- Rewrite backend from Express to NestJS with Clean ArchitectureBernardoSsilva/Forenser-backend · 2026-09-14
- refactor: migrate cinema-booking-api from Express to NestJSkubrak-j/cinema-booking-api · 2026-09-11
- Migration from express to NestJSCHEESOM11/huddle · 2026-09-09
- refactor: migrate application from Express to NestJSKhdavid332/TeqTag · 2026-09-02
What makers say
Makers on using it for backend framework, from Product Hunt and Starter Story interviews, each linked to the source. Products with a page of their own and fuller notes first.
Ghostboard started as an ExpressJS monolith in a $5 server on Digitalocean as a prototype for my blog: simple, low-cost, and with a few features.
Currently, for our tech stack I’m using mongoDB as a database, nodejs/express as the server and Vue/Nuxt on the front end.
Our Tech Stack Node.js and express MongoDB Nginx Reactjs Nextjs<
NestJS powers the Exstats backend. Crawlers for Chrome, Edge, and Firefox stores, the GraphQL API behind the dashboard, and the scheduled jobs for alerts and aggregations all run on it.
NestJS provides the backend architecture behind Cockpit.run. Its modular structure and TypeScript support made it easier to build a scalable infrastructure management system.
We picked Nest.js for its modular structure and scalability, ensuring our backend is robust and future-proof. Think of it as the oven where all your pizza appreciation orders get baked to perfection! 🍕🔥
Loved and watch-outs
Themes that recur in makers' words and Hacker News comments, each linked to what it summarises.
- A plain Node and Express server is a simple, low-cost way to get a first product running on a small VPS. Starter StoryStarter Story 2Starter Story 3
- It is battle-tested with a large middleware ecosystem, so developers keep it over newer runtime built-ins. HNHN 2
- The minimal core lets you pick your own building blocks and keep dependencies few. HNHN 2
- Modules, decorators and TypeScript give the backend a clear structure that stays maintainable as features grow complex. PHPH 2
- One NestJS codebase can host the API, crawlers and scheduled jobs together. PHPH 2
- Its Swagger integration derives the OpenAPI spec from validation rules and decorators, so docs stay in sync with code. HN

