La migración que vale la pena
Next.js 15 lleva un tiempo disponible y la pregunta que me siguen haciendo es: ¿vale la pena migrar o es mejor esperar?
Migré dos proyectos en producción a Next.js 15 y tengo una respuesta más matizada que "sÃ, migrá". Acá está lo que encontré.
Por qué sà vale la pena
El sistema de caché revisado es una mejora real
El caching en Next.js 13 y 14 confundió a casi todos. El comportamiento por defecto era demasiado agresivo y la mayorÃa de los desarrolladores terminaban deshabilitando el caché sin entender bien por qué.
Next.js 15 hizo una corrección importante: el fetch ya no cachea por defecto. Ahora tenés que ser explÃcito sobre qué querés cachear y por cuánto tiempo. Esto significa más código en algunos casos, pero también significa que el comportamiento es predecible.
El nuevo modelo mental es más claro: si no le decÃs que cachee, no cachea. Simple, predecible, sin sorpresas.
Turbopack en modo dev (estable por fin)
Turbopack como reemplazo de webpack en modo desarrollo es notablemente más rápido. En proyectos medianos, los tiempos de compilación inicial bajaron a la mitad en mis tests. Los HMR (hot module replacement) son casi instantáneos.
¿Funciona perfectamente? En su mayorÃa sÃ. Tuve un conflicto con una librerÃa de CSS-in-JS que requirió una configuración manual, pero en general la transición fue suave.
Server Components más maduros
Los React Server Components ya no son una feature experimental — son el centro del modelo mental de Next.js 15. Y en esta versión, el tooling y la experiencia de desarrollo los hace mucho más fáciles de usar correctamente.
La separación entre Server Components y Client Components es más clara en el código. Los errores cuando violás los lÃmites son más descriptivos. La documentación es más completa.
Lo que te va a costar (los gotchas reales)
El cambio en el comportamiento de params y searchParams
En Next.js 15, params y searchParams en page components son ahora Promises en lugar de objetos sÃncronos. Esto rompe código de Next.js 14 que accede a ellos directamente.
// Next.js 14
export default function Page({ params }: { params: { id: string } }) {
return <div>{params.id}</div>
}
// Next.js 15
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
return <div>{id}</div>
}
El codemod oficial detecta la mayorÃa de estos casos, pero tuve que hacer ajustes manuales en algunas situaciones con tipos TypeScript complejos.
Algunas librerÃas todavÃa no están listas
No todas las librerÃas del ecosistema son compatibles con Next.js 15 todavÃa. Antes de migrar, revisá las dependencias crÃticas de tu proyecto. El problema más común: librerÃas que usan apis deprecadas de Next.js o que asumen ciertos comportamientos del caché que cambiaron.
El tiempo de build en producción
Turbopack todavÃa no está en modo producción — seguÃs usando webpack para los builds de producción. Hay trabajo en progreso, pero no llegó estable a esta versión. Asà que el tiempo de build en producción no mejoró (ni empeoró).
Mi proceso de migración
Para los dos proyectos que migré, usé este proceso:
- Rama de migración separada, nunca directo en main
- Codemod oficial primero:
npx @next/codemod@latest upgrade - Resolver errores de TypeScript antes de correr el servidor
- Testing manual de todos los flujos crÃticos
- Despliegue gradual con feature flags
El proceso tomó entre 4 y 8 horas por proyecto dependiendo de la complejidad. No fue traumático, pero requirió atención.
¿DeberÃas migrar?
Proyectos nuevos: sÃ, empezá con Next.js 15. No hay discusión.
Proyectos existentes en producción: si tu proyecto tiene tráfico real y el negocio depende de él, esperá a que el ecosistema de librerÃas madure un poco más (digamos un mes o dos), o planeá una ventana de mantenimiento apropiada. El caché revisado es un cambio de comportamiento que puede tener efectos inesperados si no lo probás bien.
Proyectos de hobby o staging: migrá ya, es la mejor forma de aprender las diferencias.
El futuro de Next.js claramente está en la dirección de Next.js 15. Más temprano que tarde, la migración va a ser necesaria. Mejor hacerla cuando es una decisión que cuando es una urgencia.