NestJS is an opinionated Node.js backend framework built on top of Express. Its philosophy is to provide an opinionated and structured approach to building server-side Node.js applications - something which have lacked in the Node.js ecosystem versus other languages such as PHP which have frameworks such as Laravel or Symfony.
Alongside the core framework, NestJS consists of different modules which each extend and add functionality to the core. Some of these modules include:
- @nestjs/graphql for building APIs after the GraphQL specification
- @nestjs/mongoose for integrating with MongoDB databases
- @nestjs/passport for authentication
NestJS also has a powerful CLI tool for scaffolding and maintain NestJS applications, for example used for starting new projects or generating new modules.
NestJS' architecture is largely inspired by <Link href="/frameworks/angular">Angular</Link> and uses the same dependency-injection pattern in order to share modules across the application. Both Angular and NestJS are also written in TypeScript and uses features such as TypeScript decorators to dictate the behaviour of the application.