Qué es Next.js y por qué se convirtió en el estándar del ecosistema React

June 16, 2026
next.js

Por: Braian de Barros, developer en Urudata Software

React cambió la forma de construir interfaces, pero dejó sin resolver problemas clave como el routing, el rendering del servidor y el SEO. Next.js llena esos vacíos. En la última edición de las Tech Talks de Urudata Software se presentó una charla donde desglosamos el framework, analizamos sus conceptos centrales y lo comparamos con otras alternativas del ecosistema.

¿Qué problema resuelve Next.js?

Para entender Next.js hay que entender primero de dónde viene. React dominó el desarrollo frontend durante años, y con razón: su modelo de componentes y su ecosistema son enormes. Pero React por sí solo resuelve solo una parte del problema. Se encarga de la vista, de cómo se construyen y actualizan los componentes en pantalla, pero deja afuera todo lo demás: cómo se navega entre páginas, cómo se obtienen los datos, cómo se optimiza la carga inicial y cómo se carga el contenido desde el servidor.

Una aplicación en React clásica corre completamente en el navegador: el servidor entrega una página prácticamente vacía (un <div> y un archivo JavaScript) y es el browser del usuario el que se encarga de construir toda la interfaz. Eso genera dos problemas concretos:

  • SEO deficiente: cuando Google o cualquier motor de búsqueda intenta indexar la página, encuentra ese HTML vacío. El contenido existe recién después de que JavaScript se ejecuta, lo cual muchos crawlers no hacen o hacen parcialmente.
  • Carga inicial lenta: el usuario ve una pantalla en blanco hasta que el navegador descarga, parsea y ejecuta todo el JavaScript necesario. En aplicaciones grandes con muchas dependencias, eso puede significar varios segundos de espera.

Next.js, creado por Vercel en 2016, nació para resolver exactamente eso. No reemplaza a React sino que lo extiende: agrega routing, rendering del lado del servidor, data fetching, optimizaciones de performance y capacidades de backend, todo integrado y con convenciones claras. Hoy tiene más del doble de descargas semanales que Angular y se convirtió en el estándar de facto para proyectos React en producción.

Las piezas clave del framework

Routing basado en el filesystem

En la mayoría de los frameworks, definir rutas implica configurar un archivo o una librería aparte donde se mapea cada URL a un componente. Con el tiempo, ese archivo crece, se vuelve difícil de mantener y es una fuente frecuente de conflictos en equipos grandes.

Next.js resuelve esto con una de sus decisiones más elegantes: la estructura de carpetas define las rutas. No hay archivo de configuración. Crear una carpeta blog/ con un archivo page.tsx adentro genera automáticamente la ruta /blog. Una carpeta [slug]/ genera una ruta dinámica que acepta cualquier valor en la URL (por ejemplo, /blog/mi-primer-post). Una carpeta (marketing)/ agrupa rutas sin afectar la URL, útil para organizar el código internamente sin que eso cambie lo que ve el usuario.

Además, cada ruta puede tener sus propios archivos especiales: layout.tsx para definir UI compartida entre varias páginas, loading.tsx para mostrar un skeleton mientras se cargan los datos, error.tsx para capturar errores sin que se caiga toda la aplicación y not-found.tsx para personalizar el 404.

Server Components y Client Components

Este es uno de los cambios más importantes que introdujo Next.js y también uno de los más frecuentemente mal entendidos.

Tradicionalmente, los componentes de React se ejecutan en el navegador: el servidor envía el código y el browser hace todo el trabajo. El problema es que eso implica enviar mucho JavaScript al cliente, incluyendo lógica que no necesita interactividad (un listado de productos, un artículo de blog, una tabla de datos).

Next.js invierte ese modelo. Por defecto, todos los componentes son Server Components: se renderizan en el servidor, el resultado se envía como HTML listo y no agregan ni una línea de JavaScript al bundle del cliente. Solo cuando un componente necesita interactividad real (manejar clicks, mantener estado, usar hooks como useState o useEffect) se agrega la directiva “use client” al inicio del archivo para convertirlo en un Client Component.

Esto permite construir aplicaciones más livianas y rápidas, enviando al browser únicamente el JavaScript que realmente necesita ejecutar.

Cuatro modos de renderizado

A diferencia de la mayoría de los frameworks que obligan a elegir una estrategia de rendering para toda la aplicación, Next.js soporta los cuatro modos, incluso en la misma página:

  • CSR (Client-Side Rendering): el browser construye la UI con JavaScript. Ideal para secciones privadas como dashboards donde el SEO no importa.
  • SSR (Server-Side Rendering): el servidor genera el HTML en cada request. Ideal para páginas que necesitan datos actualizados y buen posicionamiento, como resultados de búsqueda o contenido personalizado.
  • SSG (Static Site Generation): el HTML se genera una sola vez durante el build. Ideal para contenido que no cambia seguido, como blogs, documentación o landings.
  • ISR (Incremental Static Regeneration): combina lo mejor de SSG y SSR. La página se sirve estática, pero se regenera en segundo plano cada N segundos. Perfecto para catálogos de e-commerce o feeds de noticias.

La clave es que cada página o componente puede usar el modo que mejor se adapte a su caso, y esa decisión se puede cambiar sin refactorizar la arquitectura.

Data fetching integrado

En React puro, obtener datos desde un servidor implica manejar estados de carga, efectos secundarios y librerías adicionales como React Query. Es código repetitivo que todo equipo termina escribiendo de alguna forma.

En Next.js con Server Components, el modelo cambia por completo: un componente puede ser directamente async y hacer consultas de los datos en el servidor. Los datos llegan al cliente ya resueltos, sin estado de carga visible, sin efectos secundarios y sin agregar JavaScript extra al bundle.

Además, Next.js permite controlar la estrategia de caché a nivel de cada request: se puede forzar datos recientes en cada visita, cachear indefinidamente, o revalidar después de un tiempo determinado. Esa granularidad evita tener que elegir entre “todo estático” o “todo dinámico” a nivel de aplicación.

Backend dentro del mismo proyecto

Uno de los cambios más significativos del ecosistema web reciente es la difuminación de la línea entre frontend y backend. Next.js abraza esa tendencia con dos mecanismos:

API Routes permiten crear endpoints REST clásicos dentro del mismo proyecto, sin necesidad de un servidor aparte. Útil para webhooks, integraciones con servicios externos o cualquier endpoint consumido por clientes fuera de la aplicación.

Server Actions van un paso más allá: son funciones que corren en el servidor, pero se invocan directamente desde la UI. Cuando un usuario envía un formulario, la función se ejecuta en el servidor, valida los datos, escribe en la base de datos y puede revalidar la página, todo en un solo flujo. Esto elimina una capa entera de boilerplate que históricamente requería armar una API solo para que el frontend pudiera hablar con el backend.

¿Cómo se compara con Angular?

Esta comparación surgió durante la charla porque es una pregunta recurrente en equipos que evalúan frameworks. La respuesta no es “uno gana y el otro pierde” — responden a filosofías distintas.

Angular es opinado: toma decisiones por el equipo (routing, HTTP, formularios, inyección de dependencias) y escala bien en proyectos grandes con muchos desarrolladores. La consistencia es su mayor valor: si conocés un proyecto Angular, conocés todos. A cambio, la curva de aprendizaje es más pronunciada y los cambios de paradigma entre versiones (como la transición a standalone components o de RxJS a signals) tienen un costo real de migración.

Next.js es flexible: delega muchas decisiones al equipo, lo que da libertad pero también puede generar inconsistencias si no hay criterios claros. Su mayor ventaja es la velocidad para ir de idea a producción y la capacidad de elegir exactamente las herramientas que necesita cada proyecto.

En la práctica, la elección depende del contexto del equipo: su experiencia previa, el tipo de proyecto, el tamaño del equipo y las herramientas con las que ya trabaja.

El factor IA en la elección de stack

Un aspecto que pocos equipos consideran al evaluar frameworks es cómo interactúan con las herramientas de IA. Los modelos están entrenados desproporcionadamente con código React + Next.js + Tailwind, simplemente porque hay mucho más código público en ese stack que en cualquier otro. Herramientas como v0, Cursor y Claude Code generan ese stack de forma natural y con mejor calidad que otros frameworks.

Eso tiene consecuencias concretas. Los prototipos se arman más rápido porque la IA genera componentes funcionales con menos iteraciones. Los refactors son más confiables porque el modelo entiende mejor las convenciones de Next.js. Y el onboarding de nuevos desarrolladores se acelera porque pueden apoyarse en la IA para entender la estructura del proyecto.

No invalida elegir otro stack, pero es un factor de productividad que debería entrar en el cálculo. La calidad del output de la IA no es uniforme entre frameworks, y eso tiene un impacto económico que se acumula sprint a sprint.

Conclusión

Next.js resuelve problemas que React deja abiertos: routing, rendering, data fetching, optimización. No los resuelve con parches o librerías sueltas, sino con un framework que integra todo y permite elegir al equipo de desarrollo cómo renderizar cada parte de la aplicación según lo que necesite.

¿Es para todos? No. Pero para equipos que trabajan con React y necesitan SEO, performance y velocidad de desarrollo, es difícil encontrar una alternativa más completa. Y el hecho de que las herramientas de IA generen mejor código en este stack es un dato que, se quiera o no, termina pesando en el día a día.


Braian de Barros forma parte del equipo de desarrollo de Urudata Software. En las Tech Talks 2026 compartió la charla “Next.js”, donde abordó herramientas, enfoques y experiencias vinculadas al desarrollo web moderno.

Tabla de contenido
Comparte esta publicación

Descubrí otras novedades

next.js

Qué es Next.js y por qué se convirtió en el estándar del ecosistema React

Por: Braian de Barros, developer en Urudata Software React cambió la forma de construir interfaces,…

agent skills

Por qué las skills importan en el desarrollo asistido por IA

Por: Facundo Barreto, developer en Urudata Software En los últimos años, el desarrollo asistido por…

AI for developers

Inteligencia artificial para desarrollo de software: cómo usar Cursor, Claude y Codex según el flujo de trabajo

Por: Agustín Repetto, developer en Urudata Software La inteligencia artificial para desarrollo de software ya…

IA en RRHH: cómo usar inteligencia artificial para filtrar y evaluar CVs automáticamente 

La inteligencia artificial está transformando los procesos de reclutamiento, permitiendo a los equipos de Recursos…

Automatización inteligente para B2B: RPA + IA para procesos industriales eficientes 

La automatización inteligente B2B se ha convertido en uno de los ejes estratégicos más relevantes…

Gestión inteligente de expedientes y documentos con inteligencia artificial 

La gestión documental es uno de los pilares silenciosos—pero fundamentales—para cualquier organización B2B.   Desde expedientes…