40M
Migrar 40 millones de comentarios sin perder ninguno
Migración completa de la plataforma de comentarios de un medio de alto tráfico, con reversión instantánea.
- typescript
- nextjs
- kubernetes
- stripe
Next.js resuelve bien un problema concreto: servir HTML ya renderizado y enviar al navegador solo el JavaScript de las partes que de verdad son interactivas. Eso es lo que separa una página que aparece de una que aparece después de descargar y ejecutar la aplicación entera.
En la práctica, la decisión que más pesa es dónde vive cada cosa. Los datos y
las reglas se resuelven en servidor, donde no dependen del navegador ni se
pueden saltar desde la consola; la interactividad se marca como cliente y se
mantiene pequeña, en islas concretas, en lugar de arrastrar media página al
bundle. Un componente marcado como cliente porque necesitaba un useState
convierte a todos sus imports en código descargable, y así es como una web
rápida engorda sin que nadie lo note.
El resto es rutina bien hecha: rutas estáticas cuando el contenido lo permite, revalidación explícita cuando no, imágenes servidas en el formato y el tamaño que corresponde, y metadatos, canónicas y alternativas de idioma generadas desde una sola definición de rutas para que no se contradigan.
Este sitio es un ejemplo de ello: bilingüe con el español en la raíz, contenido en ficheros del repositorio en vez de una base de datos, y desplegado como aplicación Node en un servidor cPanel corriente.
La parte que más se nota en producción no es el renderizado, es dónde viven las reglas. Un precio calculado en el navegador es una sugerencia que cualquiera puede reescribir desde las herramientas de desarrollo; el mismo cálculo hecho en servidor es una regla. Next.js facilita poner cada cosa en su sitio, pero no lo decide por ti: sigue siendo una decisión de diseño qué se resuelve antes de enviar el HTML y qué necesita de verdad JavaScript en el cliente. Cuando esa línea se traza mal, el resultado es lo peor de los dos mundos: un sitio que tarda en pintar y que además se puede saltar por delante.
Hechos concretos
40M
Migración completa de la plataforma de comentarios de un medio de alto tráfico, con reversión instantánea.
30.000
Un juego de formación en producción para preparar a una plantilla entera sobre un producto nuevo, 13 días antes de salir al público.
Nativo
Aplicación nativa para Windows, macOS y Linux desde una sola base de código, con los datos fiscales en la máquina del usuario y no en un servidor.
30.000
Buscador, comunicaciones y reconocimiento entre compañeros dentro de la plataforma de empleado de una gran empresa.
24M
Frontend, rendimiento y fiabilidad en producción sobre una plataforma de cotizaciones en tiempo real.
Stripe
Plataforma SaaS de venta de entradas construida de principio a fin, con pagos por Stripe y reserva de aforo a prueba de concurrencia.
Cómo trabajamos
El mismo proceso en un encargo de tres semanas y en una plataforma de dos años.
Una sesión para entender el proceso de negocio, no para enseñar plantillas. Salimos con prioridades y precio por fases.
Modelo de datos, integraciones y presupuesto de rendimiento antes de escribir la primera pantalla.
Entregas semanales en un entorno visitable. Lo que se aprueba se despliega, no se acumula.
Monitorización, copias verificadas y despliegues que cualquiera del equipo puede ejecutar.
No. Este sitio corre como aplicación Node bajo Passenger en un servidor cPanel normal, con la salida standalone que Next genera precisamente para eso. Vercel simplifica el despliegue y tiene sentido en muchos proyectos, pero no es un requisito, y darlo por supuesto ata el proyecto a un proveedor sin haberlo decidido.
Sirve, pero no siempre compensa. Para un sitio de cinco páginas que casi no cambia, cualquier generador estático es más simple de mantener. Next.js empieza a rentar cuando hay contenido dinámico, varios idiomas, formularios que tocan servidor o partes interactivas de verdad conviviendo con páginas que deben ser rápidas y rastreables.
Que van rápidas, y ese es un coste real: convenciones que eran correctas hace dos versiones ya no lo son. Por eso la referencia de trabajo es la documentación que viene con la versión instalada y no lo que era cierto el año pasado, y por eso una actualización mayor se trata como un trabajo con su alcance y no como un cambio de una línea.
Siguiente paso
Respondemos en un día laborable con una propuesta de alcance por fases, o con la razón por la que creemos que no somos el estudio adecuado para el encargo.