Skip to content
nestjsPublic

About

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript ๐Ÿš€

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

77.0k stars

Watchers

760 watching

Forks

Latest commit

ย 

History

22,469 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest is a TypeScript framework for building backends on Node.js, from a small API in one file to a large system with many teams. It gives an application modules, dependency injection, and one place each for validation, authentication and error handling, so a project keeps its shape as it grows.

It runs on Express, Fastify or Node's own node:http, and its first-party packages cover most of what a backend needs, so you can start small and add them as you go.

Quick start

npx @nestjs/cli new my-api --package-manager npm
cd my-api
npm run start:dev

An application can also be a single file. This can replace src/main.ts, and npx tsx src/main.ts runs it with no build step:

import { Controller, Get, Module } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';

@Controller()
class AppController {
  @Get()
  hello() {
    return 'Hello, Nest!';
  }
}

@Module({ controllers: [AppController] })
class AppModule {}

const app = await NestFactory.create(AppModule);
await app.listen(3000);

First-party packages

What you need Package
Language models, tools as provider methods, agents, streaming to the browser @nestjs/ai
MCP servers @nestjs/mcp
Sign-in, sessions, tokens, two-factor, API keys @nestjs/authentication
Permissions @nestjs/authorization
Email @nestjs/mail
Files, S3 included @nestjs/storage
Translations @nestjs/i18n
Databases @nestjs/typeorm, @nestjs/drizzle, @nestjs/mongoose, @nestjs/sequelize
Retries, timeouts, circuit breakers @nestjs/resilience
Idempotency keys @nestjs/idempotency
Transactional outbox @nestjs/outbox
Webhooks, sending and receiving @nestjs/webhooks
Running a job on one instance, locks @nestjs/locks
Processes that take days @nestjs/workflows
Queues and scheduled jobs @nestjs/bullmq, @nestjs/schedule
GraphQL, WebSockets, microservices GraphQL, gateways, microservices
OpenAPI @nestjs/swagger
Configuration, caching, rate limiting, health checks @nestjs/config, @nestjs/cache-manager, @nestjs/throttler, @nestjs/terminus

Moving to Nest

Using a coding agent

The whole documentation is available as markdown, with an index at docs.nestjs.com/llms.txt. Projects from nest new come with an AGENTS.md that lists the packages above, since most models were trained before they existed.

Philosophy

In recent years, thanks to Node.js, JavaScript has become the โ€œlingua francaโ€ of the web for both front-end and back-end applications, giving rise to awesome projects like Angular, React, and Vue, which improve developer productivity and enable the construction of fast, testable, and extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers, and tools for Node, none of them effectively solve the main problem - the architecture.

Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, and loosely coupled and easily maintainable applications. The architecture is heavily inspired by Angular.

Getting started

Questions

For questions and support please use the official Discord channel. The issue list of this repo is exclusively for bug reports and feature requests.

Issues

Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately.

Observability

NestJS Observe is the official observability platform for Nest applications. Install the @nestjs/observe SDK, pass an API key, and requests, background jobs, errors, logs, and distributed traces start streaming to a dashboard - no manual span wiring and no collector to run. Because the SDK hooks into Nest's own request lifecycle, a trace reads like a call graph of your controllers and providers instead of a bare HTTP route. Free for up to 300,000 events a month, and there is a live demo with no signup.

Consulting

With official support, you can get expert help straight from the Nest core team. We provide dedicated technical support, migration strategies, advice on best practices (and design decisions), PR reviews, and team augmentation. Read more about support here.

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support from the amazing backers. If you'd like to join them, please read more here.

Principal Sponsors

Gold Sponsors

Silver Sponsors

Sponsors

Backers

Stay in touch

License

Nest is MIT licensed.

About

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript ๐Ÿš€

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

77.0k stars

Watchers

760 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages