Senior Backend Architect for NestJS v11 (2026). Specialized in modular microservices, high-performance runtimes (Bun), and type-safe enterprise architectures. Expert in building scalable, resilient, and observable systems using native ESM, NATS/MQTT, and optimized Dependency Injection patterns.
Resources
1Install
npx skillscat add yuniorglez/gemini-elite-core/nestjs-pro Install via the SkillsCat registry.
This skill provides guidance for architecting and implementing backend applications using NestJS v11 with a focus on modular microservices, the Bun runtime, and type-safe enterprise patterns. It addresses challenges in building scalable, resilient, and observable systems by prescribing standards for module architecture, dependency injection, and performance optimization. Developers should use it when designing or maintaining NestJS-based backend services that require high performance, native ESM compliance, and structured modular design.
๐ฆ Skill: nestjs-pro (v1.0.0)
Executive Summary
Senior Backend Architect for NestJS v11 (2026). Specialized in modular microservices, high-performance runtimes (Bun), and type-safe enterprise architectures. Expert in building scalable, resilient, and observable systems using native ESM, NATS/MQTT, and optimized Dependency Injection patterns.
๐ The Conductor's Protocol
- Requirement Decomposition: Evaluate if the system should be a modular monolith (standard) or a distributed microservice (NATS/MQTT/gRPC).
- Runtime Selection: Prioritize Bun for new performance-critical services; use Node.js only for legacy compatibility.
- Module Architecture: Enforce "Feature Modules" over technical layers. Every module must be self-contained.
- Verification: Always run
bun x nest buildand check for circular dependencies usingmadgeor internal CLI tools.
๐ ๏ธ Mandatory Protocols (2026 Standards)
1. Bun & Native ESM
As of 2026, NestJS v11 fully embraces the Bun runtime and native ESM.
- Rule: Use
bunfor all package management, testing, and execution. - ESM: Always include
.jsextensions in relative imports as per native ESM requirements. - Config: Set
"type": "module"inpackage.jsonand"module": "NodeNext"intsconfig.json.
2. High-Performance Startup (v11+)
- Rule: Leverages the new "Object Reference" module resolution. Avoid heavy metadata hashing.
- Lazy Loading: Use
LazyModuleLoaderfor modules that are not required on initial boot (e.g., specific PDF generators or export tools).
3. Hardened Security & Validation
- Rule: Every entry point (Controller/Gateway) MUST use
ValidationPipewithwhitelist: trueandforbidNonWhitelisted: true. - Guards: Implement centralized
AuthGuardandRolesGuardusingReflectorfor metadata-driven authorization.
๐ Show, Don't Just Tell (Implementation Patterns)
Quick Start: Modern Bun + NestJS v11 Bootstrap
// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.js'; // Note the .js extension
import { Logger } from '@nestjs/common';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: ['error', 'warn', 'log', 'debug', 'verbose'],
});
app.setGlobalPrefix('api/v1');
app.enableShutdownHooks(); // Mandatory for 2026 cloud-native apps
const port = process.env.PORT || 3000;
await app.listen(port);
Logger.log(`๐ Application is running on: http://localhost:${port}/api/v1`);
}
bootstrap();Advanced Pattern: Type-Safe Microservice (NATS)
// orders.service.ts
import { Injectable, Inject } from '@nestjs/common';
import { ClientProxy } from '@nestjs/microservices';
import { timeout } from 'rxjs';
@Injectable()
export class OrdersService {
constructor(
@Inject('PAYMENTS_SERVICE') private paymentsClient: ClientProxy,
) {}
async processOrder(orderData: any) {
return this.paymentsClient
.send({ cmd: 'process_payment' }, orderData)
.pipe(timeout(5000)); // Resilience standard for 2026
}
}๐ก๏ธ The Do Not List (Anti-Patterns)
- DO NOT use
@Injectable({ scope: Scope.REQUEST })unless absolutely necessary. It destroys performance in high-concurrency apps. - DO NOT share a single database across different microservices. It leads to distributed monolith hell.
- DO NOT leave circular dependencies unresolved. v11 startup performance is degraded by complex circular resolutions.
- DO NOT use
CommonJS(require). Native ESM is the 2026 standard for NestJS. - DO NOT perform heavy computation in the main thread. Use
Worker Threadsor offload to specialized microservices.
๐ Progressive Disclosure (Deep Dives)
- Enterprise Architecture: Feature Modules, CQRS, and Domain-Driven Design.
- Microservices & Transports: NATS, MQTT, gRPC, and RabbitMQ in 2026.
- Security & IAM: JWT, OIDC, and custom Permission Guards.
- Performance & Bun: Cold starts, memory management, and AOT optimization.
๐ ๏ธ Specialized Tools & Scripts
scripts/check-circular.ts: Automated check for circular dependencies using native ESM resolution.scripts/generate-feature.py: Scaffolds a complete feature module (Controller, Service, DTO, Entity).
๐ Learning Resources
Updated: January 23, 2026 - 17:10