# NestJS — Progressive Node.js Framework for Enterprise Apps > NestJS is a progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript. It uses modular architecture inspired by Angular and supports Express/Fastify underneath. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash npm i -g @nestjs/cli nest new project-name cd project-name npm run start:dev ``` Generate a resource: ```bash nest g resource users ``` ## Intro NestJS is a framework for building efficient, scalable Node.js server-side applications. Built with TypeScript (fully supports vanilla JavaScript) and combines elements of OOP, FP, and FRP. Under the hood it uses Express by default but can swap to Fastify. - **Repo**: https://github.com/nestjs/nest - **Stars**: 75K+ - **Language**: TypeScript - **License**: MIT ## What NestJS Does Provides out-of-the-box architecture for testable, scalable, loosely-coupled, and maintainable backend apps: - **Modules** — organize code by feature - **Controllers** — handle incoming HTTP requests - **Providers/Services** — business logic via dependency injection - **Pipes/Guards/Interceptors** — cross-cutting concerns - **Microservices** — Kafka, RabbitMQ, gRPC, Redis, NATS transport - **GraphQL** — code-first or schema-first - **WebSockets** — real-time gateways ## Architecture Angular-inspired modular architecture: every app has a root `AppModule` that imports feature modules. Each feature module declares controllers and providers. DI container wires everything at startup. ``` AppModule ├── UsersModule (UsersController, UsersService) ├── AuthModule (AuthController, AuthService, JwtStrategy) └── DatabaseModule (TypeOrmModule.forRoot) ``` ## Self-Hosting ```bash # Production build npm run build node dist/main.js # Docker FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY dist ./dist CMD ["node", "dist/main.js"] ``` ## Key Features - TypeScript-first with decorators - Built-in DI container - Express or Fastify HTTP adapter - OpenAPI/Swagger auto-generation - TypeORM/Prisma/Mongoose integrations - CLI for scaffolding - Testing utilities (Jest-based) ## Comparison | Framework | DI | TypeScript | Opinionated | Best For | |---|---|---|---|---| | NestJS | Built-in | First-class | Yes | Enterprise backends | | Express | Manual | Optional | No | Minimal APIs | | Fastify | Manual | Good | No | High-perf APIs | | Koa | Manual | Optional | No | Middleware composition | ## FAQ **Q: What's the relationship between NestJS and Express?** A: NestJS uses Express as its default HTTP layer but abstracts routing/middleware and provides a higher-level module/DI architecture. You can swap in Fastify instead. **Q: What's the performance like?** A: With the Fastify adapter, performance is close to native Fastify. The overhead of the default Express adapter comes from the abstraction layer. **Q: Is the learning curve steep?** A: If you know Angular, it's nearly zero-friction. Express users need to learn decorators and DI. ## Sources & Credits - Official Docs: https://docs.nestjs.com - GitHub: https://github.com/nestjs/nest - License: MIT --- Source: https://tokrepo.com/en/workflows/nestjs-progressive-node-js-framework-enterprise-apps-267268ba Author: AI Open Source