NestJS: the Node.js framework inspired by Angular

NestJS 1.0 (May 2017) by Kamil Myśliwiec: TypeScript-first Node.js framework with decorators, DI, modules inspired by Angular and Spring. Based on Express or Fastify. Standard for TypeScript enterprise APIs.

Open SourceWeb NestJSNode.jsTypeScriptKamil MyśliwiecOpen SourceWebBackend

Express not enough for large projects

Express (2010) is minimal; freedom becomes a burden in enterprise TypeScript codebases of tens of thousands of lines. An opinionated structure is needed with:

  • Modules
  • Dependency injection
  • Decorators for routing/middleware
  • Controller/service/repository separation

The pattern is familiar to those coming from Angular (frontend) or Spring Boot (Java).

The release

NestJS 1.0 is released by Kamil Myśliwiec (Polish developer) on 29 May 2017. MIT licence. TypeScript-first, built on Express (default) or Fastify (option). Full-stack with modules for WebSocket, GraphQL, Microservices, Event-driven.

@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}

  @Get(':id')
  async findOne(@Param('id') id: string) {
    return this.usersService.findOne(id);
  }
}

Features

  • Decorator-based@Controller, @Get, @Injectable, @Module, @Param
  • DI container — inversion of control like Angular/Spring
  • Modular — reusable modules with @Module({ imports, providers, controllers })
  • Pipes — input validation and transformation (class-validator)
  • Guards — authorisation (JWT, roles)
  • Interceptors — logging, cache, response mapping
  • Exception filters — centralised error handling
  • Middleware — Express-compatible
  • CLI nest generate module users — scaffolding

Integrated modules

  • @nestjs/typeorm / @nestjs/sequelize / @nestjs/mongoose / @nestjs/prisma — ORMs
  • @nestjs/graphql — code-first GraphQL
  • @nestjs/microservices — Redis, NATS, Kafka, gRPC, RabbitMQ
  • @nestjs/websockets — Socket.IO, ws
  • @nestjs/bull — job queues
  • @nestjs/swagger — OpenAPI generation
  • @nestjs/passport — 500+ auth strategies
  • @nestjs/jwt — JSON Web Tokens
  • @nestjs/schedule — cron jobs

Versions

  • 1.0 (May 2017) — first release
  • 5.0 (July 2018) — major refactor
  • 7.0 (February 2020) — improved DI, event-driven
  • 8.0 (July 2021) — Fastify 3, TypeScript 4.3
  • 10.0 (June 2023) — Node 16+, TypeScript 5
  • 11.0 (January 2025) — Node 20+, async context storage

Use cases

  • Enterprise REST/GraphQL APIs
  • Microservices with message broker
  • BFF (Backend for Frontend)
  • Real-time servers with WebSocket
  • GraphQL gateways

In the Italian context

NestJS is widespread in:

  • Italian fintech startups (crypto exchanges, neobanks)
  • Enterprise agencies migrating from Java/PHP to Node TS
  • Italian B2B SaaS
  • Digital PA (some PagoPA APIs, Comune di Milano, Regione Lombardia projects)
  • Headless e-commerce

It’s the preferred Node.js framework where rigorous structure and experienced TypeScript teams are needed.


References: NestJS 1.0 (29 May 2017). Kamil Myśliwiec. MIT licence. Inspired by Angular and Spring. Based on Express or Fastify. @nestjs/ ecosystem for GraphQL, Microservices, WebSocket, Swagger. Current version 11.x (2025).*

Need support? Under attack? Service Status
Need support? Under attack? Service Status