nestjs-best-practices
NestJS best practices and architecture patterns for building production-ready applications. This skill should be used when writing, reviewing, or refactoring NestJS code to ensure proper patterns for modules, dependency injection, security, and performance.
By kadajett · 27,299 installs
npx skills add kadajett/agent-nestjs-skills --skill nestjs-best-practices
Source repository · Upstream listing
NestJS Best Practices
Comprehensive best practices guide for NestJS applications. Contains 40 rules across 10 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
Writing new NestJS modules, controllers, or services
Implementing authentication and authorization
Reviewing code for architecture and security issues
Refactoring existing NestJS codebases
Optimizing performance or database queries
Building microservices architectures
Rule Categories by Priority
Priority Category Impact Prefix
1 Architecture CRITICAL arch
2 Dependency Injection CRITICAL di
3 Error Handling HIGH error
4 Security HIGH security
5 Performance HIGH perf
6 Testing MEDIUM HIGH test
7 Database & ORM MEDIUM HIGH db
8 API Design MEDIUM api
9 Microservices MEDIUM micro
10 DevOps & Deployment LOW MEDIUM devops
Quick Reference
1. Architecture (CRITICAL)
arch avoid circular deps Avoid circular module dependencies
arch feature modules Organize by feature, not technical layer
arch module sharing Proper module exports/imports, avoid duplicate providers
arch single responsibility Focused services over "god services"
arch use repository pattern Abstract database logic for testability
arch use events Event driven architecture for decoupling
2. Dependency Injection (CRITICAL)
di avoid service locator Avoid service locator anti pattern
di interface segregation Interface Segregation Principle (ISP)
di liskov substitution Liskov Substitution Principle (LSP)
di prefer constructor injection Constructor over property injection
di scope awareness Understand singleton/request/transient scopes
di use interfaces tokens Use injection tokens for interfaces
3. Error Handling (HIGH)
error use exception filters Centralized exception handling
error throw http exceptions Use NestJS HTTP exceptions
error handle async errors Handle async errors properly
4. Security (HIGH)
security auth jwt Secure JWT authentication
security validate all input Validate with class validator
security use guards Authentication and authorization guards
security sanitize output Prevent XSS attacks
security rate limiting Implement rate limiting
5. Performance (HIGH)
perf async hooks Proper async lifecycle hooks
perf use caching Implement caching strategies
perf optimize database Optimize database queries
perf lazy loading Lazy load modules for faster startup
6. Testing (MEDIUM HIGH)
test use testing module Use NestJS testing utilities
test e2e supertest E2E testing with Supertest
test mock external services Mock external dependencies
7. Database & ORM (MEDIUM HIGH)
db use transactions Transaction management
db avoid n plus one Avoid N+1 query problems
db use migrations Use migrations for schema changes
8. API Design (MEDIUM)
api use dto serialization DTO and response serialization
api use interceptors Cross cutting concerns
api versioning API versioning strategies
api use pipes Input transformation with pipes
9. Microservices (MEDIUM)
micro use patterns Message and event patterns
micro use health checks Health checks for orchestration
micro use queues Background job processing
10. DevOps & Deployment (LOW MEDIUM)
devops use config module Environment configuration
devops use logging Structured logging
devops graceful shutdown Zero downtime deployments
How to Use
Read individual rule files for detailed explanations and code examples:
Each rule file contains:
Brief explanation of why it matters
Incorrect code example with explanation
Correct code example with explanation
Additional context and references
Full Compiled Document
For the complete guide with all rules expanded in a single document, see
[AGENTS.md in the repository](https://github.com/Kadajett/agent nestjs skills/blob/main/AGENTS.md).