No necesitas NextJS

Next.js es la respuesta por defecto para construir aplicaciones React. Es un gran framework. Pero que sea la opción por defecto no significa que sea necesaria.

Usarlo para el proyecto equivocado nos costó velocidad y causó fricción en el equipo. Construimos un producto con gran carga de datos, con dashboards y gráficos. Casi todas las pantallas estaban protegidas tras un inicio de sesión.

Para este tipo de aplicación, el renderizado en el lado del servidor (SSR) añadió costes sin añadir valor.

La herramienta adecuada depende de lo que construyas.

Proyectos centrados en el contenido: • Sitios de marketing • Blogs • Tiendas online • Documentación • Usa Next.js aquí. El SEO es importante y el contenido es estático.

Proyectos centrados en la aplicación: • Herramientas internas • Dashboards • Paneles de administración • Consolas SaaS • Usa una SPA basada en Vite aquí. Estas aplicaciones funcionan tras una autenticación y dependen de APIs.

Pasamos de Next.js a una SPA con Vite. He aquí el porqué:

  1. Depuración más sencilla Los errores del servidor no se vinculan de forma clara con tus componentes. Los errores del lado del cliente ocurren en el navegador con trazas de pila claras. Esto hace que corregir errores sea rápido.

  2. Mejores pruebas No puedes realizar fácilmente pruebas unitarias a un componente de servidor que renderiza otros componentes de servidor. Tomamos decisiones de diseño solo para que fueran testeables. Fue un error.

  3. Autenticación más simple El SSR requiere que el servidor valide los tokens en cada solicitud. Esto crea más superficies de ataque y una lógica de cookies compleja. Una aplicación centrada en el cliente gestiona la autenticación en un solo lugar: la API.

  4. Menores costes de infraestructura El SSR necesita un servidor siempre activo para cada solicitud. Un frontend estático se distribuye como archivos desde un CDN. Tienes un servicio menos que ejecutar y asegurar.

  5. Menos complejidad Next.js obliga a una división entre servidor y cliente. Los ingenieros de frontend tenían que gestionar aspectos del servidor como el middleware y el almacenamiento en caché. Esto nos ralentizó.

Migramos por fases. Mantuvimos Next.js para las páginas públicas críticas para el SEO. Movimos todo lo demás a una SPA con Vite.

Las contrapartidas fueron mínimas: • SEO: Los dashboards tras un inicio de sesión no necesitan SEO. • Carga inicial: Las aplicaciones con gran carga de datos suelen ser lentas debido a la base de datos, no al framework.

Usa Next.js si el SEO y las vistas previas en redes sociales son importantes. Usa una SPA con Vite si tu aplicación es interactiva, basada en datos y requiere inicio de sesión.

Deja de usar lo que viene por defecto. Pregúntate qué estás construyendo realmente.

Fuente: https://dev.to/moruno21/you-dont-need-nextjs-heres-why-708