NestJS: Qué Es, Ventajas y Cómo Instalarlo Paso a Paso

¿Te gustaría crear APIs profesionales y escalables sin tener que realizar configuraciones interminables? NestJS es la respuesta. Este framework de Node.js está revolucionando el desarrollo backend con su arquitectura moderna inspirada en Angular, y en esta guía completa aprenderás qué es NestJS, como instalar NestJS paso a paso, cómo crear un proyecto NestJS desde cero y por qué los desarrolladores lo eligen sobre Express.
Si ya conoces Express y sientes que tu código se vuelve difícil de mantener a medida que los proyectos crecen, o si tienes experiencia con frameworks como Spring Boot y buscas algo similar en JavaScript/TypeScript, NestJS te sorprenderá. Este framework ha sido elegido por importantes empresas como Netflix, Adidas y Autodesk para construir aplicaciones Enterprise. Este tutorial NestJS para principiantes te mostrará todo lo necesario para que puedas iniciar cuanto antes con este excelente framework.
Guía Paso a Paso
- Qúe es NestJS?
- ¿Por qué elegir NestJS en 2025?
- Requisitos Previos
- Cómo instalar NestJS Paso a Paso
- Arquitectura Básica de NestJS
- Primera API con NestJS
- NestJS vs Express
- NestJS vs Spring Boot
- Próximos Pasos
- Errores Comunes
- FAQ
Qué es NestJS?
NestJS es un framework escalable y eficiente para construir aplicaciones de lado del servidor en Node.js. Puedes usar JavaScript, pero el framework esta construido con soporte nativo para TypeScript, adicional combina elementos de programación orientada a objetos (OOP por sus siglas en ingles), programación funcional (FP) y programación funcional reactiva (FRP).
NestJS viene por defecto configurado para utilizarse con el framework minimalista Express para atender las solicitudes de servidor HTTP, pero opcionalmente puedes configurar Fastify como servidor de solicitudes.
Para que Sirve
Qué es NestJS y para que sirve? Como mencionamos anteriormente, es un framework para construir una gran variedad de aplicaciones:
- APIs rest tradicionales.
- APIs con GrapghQL
- Microservicios
- Aplicaciones en tiempo real (web sockets)
- APIs seguras con autenticación JWT
- Sistemas con bases de datos SQL y NoSQL
- Tareas tipo cron, job, batch.
- Interfaces gráficas en HTML gestionadas desde el backend con HTML convencional o con un motor de plantillas como handlebars.
Esto es lo básico, te sorprenderá que hay mas tipos de aplicaciones que se pueden construir con NestJS, pero por ahora, eso cubre la mayoría de requisitos empresariales.
Casos de Uso
NestJS aun es un framework moderno (joven) si lo comparamos con los maduros/veteranos como Spring Boot que tienen una vida en el mercado de mucho mas años, entonces es difícil encontrar estudios formales y estimaciones de como las empresas han adoptado esta tecnología, sin embargo al navegar un poco por Internet y preguntándole a ChatGPT o Claude (lógicamente los modelos de IA ya hacen parte de nuestra rutina en el día a día 😉), puedes encontrar fácilmente empresas reconocidas a nivel mundial que han adoptado NestJS en sus soluciones de arquitecturas tecnológicas.
Autodesk, Addidas, Netflix, GoDaddy, Decathlon e incluso IBM, son grandes empresas que han incorporado NestJS, y eso solo por nombrar algunas. Ahora, mi anécdota personal; yo trabaje alrededor de 5 años como developer de microservicios para una empresa de telecomunicaciones en Colombia, y aunque al principio casi toda su arquitectura estaba en Spring Boot, poco a poco adoptaron NestJS para proyectos nuevos y para reemplazar algunas funcionalidades viejas de Spring Boot, fue tal su impacto, que hoy es por defecto la tecnología utilizada para proyectos técnicos relacionados con microservicios.
Por qué elegir NestJS en 2025?
Te preguntarás, ¿Porque NestJS es mejor que otros frameworks y que lleva a una empresa a incorporar este framework en su stack tecnológico? Para la respuesta voy a poner de ejemplo unas comparaciones con Spring Boot, pero quiero dejar claro que no considero que NestJS y Spring Boot sean uno mejor que el otro, en mi opinión son complementarios, así que presento mis disculpas a los amantes de Spring Boot pero voy a utilizarlo como punto de comparación porque es el conocimiento mas reciente y fresco que tengo (yo se lo que es amar un framework cuando llevas años usándolo 😅).
En mi opinión personal, fueron tres (3) factores que posicionaron a NestJS como tecnología por defecto para proyectos de microservicios en la compañía donde yo trabaje como developer.
Aumento de productividad
Hay muchas ventajas de usar NestJS para APIs por su velocidad de desarrollo, aunque su curva de aprendizaje es empinada, es mucho menor si la comparamos con Spring Boot, esto se traduce en menor tiempo en desarrollo de aplicaciones backend. Importante para el área de negocio que quiere soluciones rápidas, eficaces y de calidad.
Requisitos Empresariales
Desde el punto de vista empresarial, una de las características principales de NestJS es que puede cumplir la mayoría de requerimientos técnicos y de negocio que pueden exigir las grandes compañías para la solución o implementación de sus proyectos, por ejemplo:
- Librerías para integrarse con bases de datos empresariales (OracleDb, SQLServer, PostgreSql, MySql, MongoDb, Neo4j, etc).
- Librerías para integrarse con servicios o componentes que funcionan con el protocolo HTTP, como Rest o Soap.
- Librerías para integrarse con tecnologías basadas en eventos (también conocidos como brokers de mensajería), Apache Kafka, RabbitMQ, NATS, Redis, etc.
- Librerías para integrarse con tecnologías JWT para la implementación de protocolos seguros de autenticación como OAuth, seguridad empresarial.
- Un framework con arquitectura definida (también llamado opinionado), es decir, en su documentación oficial y en su metodología de implementación esta establecido claramente como se realiza la creación de componentes de software (tal como sucede con Spring Boot, Angular o incluso Laravel de PHP). Esto es fundamental para la rotación de personal en las empresas, por ejemplo, hoy estoy como developer pero mañana no, y la persona que asuma mi anterior posición de trabajo si conoce NestJS, puede acoplarse rápidamente al código fuente que antes era mi responsabilidad.
- Compatible con Docker. Al poder empaquetarse la aplicación NestJS con docker, lo hace compatible con los entornos de Kubernetes para orquestación de contenedores, es casi un estándar de infraestructura es las empresas tecnológicas hoy en día. Hablaremos en otro artículo sobre Docker y Kubernetes, promesa 🙌.
Reducción de costos de Infraestructura.
Las áreas administrativas y contables de las empresas siempre ponen un ojo en todo lo relacionado a costos, “si es mas barato y aun así cumple nuestros requerimientos técnicos y de negocio, usemoslo” 😅. Nosotros desde el punto de vista técnico no deberíamos estar pensando si el uso de una tecnología u otra es mas económico, nuestro enfoque esta en la solución que se le entrega a la empresa, pero a decir verdad, tener en cuenta los costos es un plus mucho mas valorado en estos tiempos.
Porque reducción de costos de infraestructura? Te explico, en Docker, así como en Kubernetes, tenemos la posibilidad de asignar que tantos recursos de CPU y memoria RAM puede tener nuestra imagen docker para su ejecución, y por la experiencia que he tenido y he podido comprobar para la mayoría de aplicaciones de propósito general, los siguientes son los requerimientos mínimos para que una imagen de NestJS y una imagen Spring Boot en docker puedan iniciar:
| Framework | NestJS | Spring Boot |
|---|---|---|
| de un (1) CPU | usa 0.05 CPU | usa 0.1 CPU |
| de un (1) GB de RAM | usa 0.3 GB | usa 0.5 GB |
Si te das cuenta, Spring Boot necesita casi el doble de capacidad de hardware que NestJS, y desde el punto de vista de un microservicio, o dos, o tres, es prácticamente insignificante, pero una gran empresa que tiene cientos e incluso miles de microservicios, entonces los recursos de hardware ya son considerables, especialmente si la infraestructura esta basada en Kubernetes y arquitecturas cloud en AWS, Azure o Google donde se cobra por CPU y RAM. Podemos destinar un artículo posterior a realizar estimaciones mas precisas en cuanto a estos costos.
Con esto no quiero decir que Spring Boot sea una mala decisión, para nada, Spring Boot tiene características muy propias que supera a NestJS, a lo que si me refiero, es que gracias a su reducción de capacidad de hardware y el cumplimiento de requisitos técnicos y de negocio que NestJS puede cubrir, ha podido entrar a competir de manera seria en el mundo empresarial.
Requisitos Previos
Para poder instalar y empezar a realizar proyectos con NestJS, necesitas muy poco software y muy pocos conocimientos básicos, realmente es sencillo empezar.
NodeJS Instalado
Ya que NestJS es un framework para NodeJS, entonces es lógico que tengas instalado node.js, aquí hay una guía de instalación muy completa para Windows 10 y Windows 11 o en Internet puedes encontrar bastante información al respecto.
Editor de Texto o IDE
Necesitas un editor de texto, yo utilizo Visual Studio Code (vscode), pero como siempre, el de tu preferencia esta bien, hoy en día todos los editores de texto o IDE ofrecen características profesionales y gratuitas para proyectos de desarrollo de software.
Nociones de TypeScript
El framework tiene soporte nativo para TypeScript, podrías usar solo JavaScript pero estarías perdiendo todas las ventajas de NestJS, si vienes de otros frameworks como Spring Boot la adaptación sera casi instantánea, si vienes de JavaScript de igual manera TypeScript es muy sencillo, y aquí trataremos de hacerlo aun mas 😎.
Cómo Instalar NestJS paso a paso
Una vez confirmes que node.js y npm ya están instalados, entonces esta todo listo para que empecemos con este tutorial NestJS para principiantes.
Instalación CLI
Es necesario instalar las herramientas CLI de NestJS, en el símbolo del sistema o terminal de Linux escribir el siguiente comando que las instalará globalmente, es decir, estarán disponibles en todo tu computador para todos los proyectos que gestiones con NestJS. Esto instala NestJS y las herramientas CLI.
> npm i -g @nestjs/cli

Crear Primer Proyecto
Una vez instalado NestJS, nos ubicamos en algún directorio (yo elegí el escritorio) y escribimos el siguiente comando para crear un proyecto NestJS desde cero. Cuando se te pregunte que manejador de paquetes, puedes elegir el de tu preferencia, si no sabes cual, la mayoría de usuarios por defecto (me incluyo) seleccionamos npm.
> nest new primer-proyecto

Después de unos pocos minutos donde NestJS crea la configuración del proyecto, nos avisa que todo fue exitoso y podemos abrir nuestro proyecto con algún editor de texto.

Entramos a la carpeta del proyecto desde el símbolo del sistema y ejecutamos el siguiente comando para abrirlo en VS Code (yo uso este editor de texto).
> code .

Y desde esta misma ubicación podemos ejecutar de una vez el proyecto, magnifico cierto? NestJS nos entrega un proyecto funcional y pre-configurado para poder ejecutarlo de una vez.
> npm run start:dev

Y finalmente para poder probar nuestro primer proyecto, puedes abrir un cliente para testear APIs, puedes instalar la extensión Thunder Client de VS Code, pero lo que siempre dejo en claro, estas en la libertad de usar el que mas te guste si ya conoces otros clientes para testear APIs, otro de los mas importantes en Postman.
Creas un nuevo Request y escribes la URL apuntando a localhost, por el puerto 3000 y el protocolo http, todas estas configuraciones son por defecto del framework, así que por ahora no importa de donde vienen.
http://localhost:3000

Si no tienes instalado ningún cliente para testear APIs, puedes probarlo en el navegador directamente, te recomiendo cuanto antes instalar una herramienta para testear, es fundamental para un desarrollador backend.

Y así de fácil es crear un proyecto NestJS desde cero después de cómo instalar NestJS paso a paso, fabuloso cierto?
Estructura de Carpetas
Vamos a echarle un vistazo a la estructura de carpetas que NestJS nos entrega por defecto en la creación de un proyecto.

La carpeta src contiene el código fuente de la aplicación, significa que acá es donde nosotros programamos y crearemos todas nuestras funcionalidades.
La carpeta node modules contiene todos las librerías y dependencias necesarias para el proyecto, recordemos que NestJS es un framework para node.js.
La carpeta test contiene los archivos destinados a pruebas unitarias, pruebas e2e pre-configuradas para un proyecto nuevo.
La carpeta raíz del proyecto contiene archivos de configuración generales para un proyecto node.js, para el framework NestJS y TypeScript.