Logo Gerardo Perrucci - Full Stack Developer

Despliega tu app de Next.js en Cloudflare Workers con el adaptador de Cloudflare para OpenNext

En los últimos años, la computación serverless ha revolucionado la forma en que los desarrolladores despliegan y escalan aplicaciones. Entre las muchas plataformas, Cloudflare Workers destaca por sus capacidades de edge computing y su red global. Sin embargo, desplegar frameworks modernos como Next.js—que admiten tanto la generación de sitios estáticos (SSG) como el renderizado del lado del servidor (SSR)—en Cloudflare Workers ha sido históricamente un reto. Aquí es donde entra OpenNext, un adaptador innovador que simplifica este proceso. Con el lanzamiento del adaptador @opennextjs/cloudflare en septiembre de 2024, los desarrolladores ahora pueden desplegar apps de Next.js en Cloudflare Workers de forma fluida.

Este artículo te guiará paso a paso por el proceso, destacará funcionalidades clave, incluirá ejemplos prácticos de código y explorará casos de uso donde esta configuración brilla.

Next.js Cloudflare Workers

¿Por qué elegir Cloudflare Workers para Next.js?

La Ventaja del Edge

Cloudflare Workers opera en el edge, lo que significa que tu aplicación se ejecuta más cerca de los usuarios en todo el mundo. Esto reduce la latencia y mejora significativamente el rendimiento en comparación con el alojamiento centralizado tradicional. Para aplicaciones Next.js, que a menudo requieren renderizado dinámico o rutas API, ejecutarlas en Cloudflare Workers garantiza respuestas casi instantáneas.

Integración Fluida con OpenNext

El adaptador @opennextjs/cloudflare cierra la brecha entre el amplio conjunto de características de Next.js y el runtime edge de Cloudflare Workers. Soporta:

  • Static Site Generation (SSG): Páginas pre-renderizadas para tiempos de carga ultrarrápidos.
  • Incremental Static Regeneration (ISR): Actualización dinámica de páginas estáticas sin reconstruir toda la aplicación.
  • Server-Side Rendering (SSR): Renderizado bajo demanda según las solicitudes del usuario.
  • API Routes: Aloja la lógica backend en el mismo despliegue.

Con la versión v1.0-beta, el adaptador ya está listo para producción y se espera su disponibilidad general (GA) próximamente.


Primeros Pasos: Desplegar una App de Next.js en Cloudflare Workers

Requisitos Previos

Antes de continuar, asegúrate de tener lo siguiente instalado:

  • Node.js (se recomienda v18+)
  • npm o yarn
  • Una cuenta de Cloudflare con acceso a Workers y Pages
  • La herramienta CLI wrangler (npm install -g wrangler)

Paso 1: Crea una Nueva App de Next.js

Si estás comenzando desde cero, inicia un nuevo proyecto Next.js con el siguiente comando:

npx create-next-app@latest my-nextjs-app
cd my-nextjs-app

Para proyectos existentes, salta este paso y procede a configurar el adaptador.

Paso 2: Instala el Adaptador de Cloudflare para OpenNext

Instala las dependencias necesarias ejecutando:

npm install @opennextjs/cloudflare

Actualiza tu archivo next.config.js para incluir el adaptador:

// next.config.js
const { withCloudflare } = require('@opennextjs/cloudflare');

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
};

module.exports = withCloudflare(nextConfig);

Esta configuración indica a Next.js que use el adaptador de Cloudflare durante las builds.

Paso 3: Compila Tu Aplicación

Ejecuta el comando de build para generar los assets optimizados:

npm run build

El adaptador generará archivos compatibles con Cloudflare Workers.

Paso 4: Despliega Usando Wrangler

Inicializa un nuevo proyecto Worker si aún no lo has hecho:

wrangler init

Copia los archivos generados desde .open-next a tu directorio de Worker. Luego, despliega tu app:

wrangler publish

¡Tu app de Next.js ahora está en vivo en Cloudflare Workers!


Funcionalidades Clave del Adaptador de Cloudflare para OpenNext

Manejo de Caché

Una de las funciones destacadas del adaptador es su manejador de caché incorporado. Administra inteligentemente las cachés de datos ISR/SSG, garantizando un rendimiento óptimo sin intervención manual. Por ejemplo:

  • Páginas ISR: Refresca automáticamente el contenido obsoleto después de un intervalo definido.
  • Respuestas de API: Almacena en caché las respuestas en el edge para solicitudes posteriores más rápidas.

Soporte para Desarrollo Local

El adaptador mejora los flujos de desarrollo local simulando bindings de Cloudflare. Puedes configurar estos bindings mediante las opciones de initOpenNextCloudflareForDev(). Aquí tienes un ejemplo:

// middleware.ts
import { initOpenNextCloudflareForDev } from '@opennextjs/cloudflare';

export const onRequest = initOpenNextCloudflareForDev({
  bindings: {
    MY_BINDING: 'test-value',
  },
});

Compatibilidad con Versiones de Next.js

El adaptador es compatible con Next.js 14 y 15, lo que lo hace preparado para futuras versiones. Esta compatibilidad garantiza que puedas aprovechar características de última generación como Turbopack y React Server Components.


Análisis Comparativo: Cloudflare vs. Otras Opciones de Despliegue

FuncionalidadCloudflare WorkersVercelNetlify
Edge RuntimeParcial (con Edge Functions)No
CDN GlobalIncorporadoRequiere configuración adicionalRequiere configuración adicional
RentabilidadModelo de pago por solicitudBasado en suscripciónBasado en suscripción
Facilidad de UsoModerada (requiere Wrangler)AltaAlta

Aunque plataformas como Vercel ofrecen integraciones sin fricción, Cloudflare Workers destaca por su rentabilidad y alcance global. Para equipos que priorizan rendimiento y escalabilidad, la combinación de Next.js y Cloudflare Workers no tiene comparación.


Casos de Uso Prácticos

Plataformas de E-commerce

Catálogos de productos dinámicos y recomendaciones personalizadas se benefician enormemente de SSR e ISR. Al desplegar en Cloudflare Workers, los sitios de e-commerce logran respuestas de baja latencia incluso en picos de tráfico.

Sitios con Gran Contenido

Blogs, portales de noticias y sitios de documentación pueden pre-renderizar páginas estáticas usando SSG y actualizarlas dinámicamente con ISR. Los mecanismos de caché del adaptador mejoran aún más la velocidad y confiabilidad.

Aplicaciones en Tiempo Real

Las rutas API alojadas en Cloudflare Workers habilitan funcionalidades en tiempo real como chatbots o dashboards de analítica. Estos servicios responden instantáneamente gracias a su proximidad al usuario final.

Decorative quote icon

"La introducción del adaptador de Cloudflare para OpenNext marca un momento clave para hacer que Next.js sea verdaderamente portable entre diferentes entornos de hosting."

OpenNext Blog

Los expertos coinciden en que esta innovación democratiza el acceso al edge computing, permitiendo a los desarrolladores construir aplicaciones de alto rendimiento sin importar las restricciones de infraestructura.

Desplegar una app de Next.js en Cloudflare Workers con el adaptador @opennextjs/cloudflare desbloquea un rendimiento, escalabilidad y flexibilidad sin igual. Ya sea que estés construyendo una plataforma de e-commerce, un sitio rico en contenido o una aplicación en tiempo real, esta configuración garantiza que tu app se ejecute eficientemente en el edge.

A medida que el adaptador se acerca a su GA, anticipamos funcionalidades aún más robustas y optimizaciones. Comienza a experimentar hoy mismo y aprovecha el poder de Cloudflare Workers para tus proyectos con Next.js.

Referencias