Después de 2024, tomar decisiones arquitectónicas en proyectos Shopify ya no es "¿moderno o no?". La pregunta real es: qué números justifican el cambio. Comparamos React Server Components de Hydrogen con el enfoque monolítico de Liquid usando datos reales de 6 proyectos. Este artículo no tiene frameworks teóricos — solo análisis basado en evidencia: TTFB, build time, developer velocity y costo de migración.

TTFB: Edge SSR vs Server-Side Render

Primera métrica: Time to First Byte. En proyectos Hydrogen probamos con Oxygen (runtime de edge de Shopify) y Cloudflare Workers. Los temas Liquid usan el pipeline de rendering por defecto de Shopify.

Setup de benchmark:

  • Hydrogen: Remix 2.x + Oxygen, 8 rutas, bundle promedio de 120kb
  • Liquid: Dawn 15.0, configuración de caché por defecto
  • Test: WebPageTest, ubicación Virginia, conexión 3G Fast, promedio de 9 runs

Resultados:

ArquitecturaTTFB (p50)TTFB (p95)LCP
Liquid (Dawn)420ms680ms2.1s
Hydrogen (Oxygen)180ms310ms1.4s
Hydrogen (CF Workers)140ms240ms1.2s

Con Hydrogen en edge SSR y estrategia de caché correcta, TTFB cae 58%. Pero esto aplica solo a rutas estáticas — en rutas personalizadas (carrito, checkout) la diferencia baja a 30% porque se bypasea el caché.

Tradeoff de Rutas Personalizadas

En Hydrogen, la latencia de personalización funciona así: cada usuario hace query de carrito a Storefront API, ese roundtrip suma 80-120ms incluso en edge. En Liquid, la query se resuelve server-side en el template, sin roundtrip adicional. Si el catálogo tiene muchas variantes (PDPs dinámicas), el TTFB de Hydrogen baja. En un proyecto de cosméticos con 240 SKUs, PDP en Hydrogen fue 290ms vs 380ms en Liquid — diferencia del 23%.

Build Time: Velocidad de Iteración en Dev

Segunda métrica: tiempo de inicio del servidor local y build en producción. Hydrogen usa Vite, Liquid usa Theme Kit o Shopify CLI.

Tiempo de arranque del dev server:

  • Liquid (Theme Kit): ~4s
  • Hydrogen (Vite dev): ~1.8s

Build en producción:

  • Liquid: 0s (sin build, Shopify renderiza directo)
  • Hydrogen: 12-18s (bundle + generación de SSR output)

Liquid no tiene fase de build, por eso el pipeline CI/CD es más simple. Hydrogen tiene npm run build que suma 12s incluso en cambios menores. Pero Hot Module Replacement (HMR) en Hydrogen es mucho más rápido — en Liquid, cambiar un archivo .liquid dispara sincronización en Theme Kit (~2-3s), en Hydrogen Vite actualiza en <200ms.

Para equipos que hacen 50+ cambios al día, esta diferencia impacta directamente en velocity. Un proyecto de moda vio velocity +18% post-migración porque el dev está en "flujo" en lugar de esperando sincronización.

Developer Velocity: TypeScript + Tooling

Tercera métrica: cobertura TypeScript, linting, testing. Liquid se maneja con JavaScript (tags <script>), Hydrogen es full TypeScript.

Tasa de detección de errores:

HerramientaLiquidHydrogen
Error en compile-time de TypeScript0124/sprint
Warning de ESLint en runtime8/sprint0
Cobertura de unit test12%68%

En Hydrogen, las respuestas de Storefront API vienen con tipos TypeScript. Si el contrato cambia, el build falla — no es error en runtime, es en compile-time. En Liquid, cambios así solo se ven en producción.

Ejemplo real: Storefront API cambió la estructura de product.metafields en Q2 2025. En proyectos Hydrogen, TypeScript lanzó error, deployment falló, se arregló. En Liquid, fue un console error que tardó 3 días en detectarse. Este gap de riesgo es crítico en sitios commerce grandes.

Costo de Migración: Esfuerzo de Refactor

Cuarta métrica: costo de pasar un tema Liquid existente a Hydrogen. Datos de esfuerzo en 3 proyectos:

Proyecto A (moda, 80 SKU):

  • Liquid LOC: ~4200
  • Migración a Hydrogen: 18 developer-days
  • Componentes React: 32

Proyecto B (electrónica, 1200 SKU):

  • Liquid LOC: ~9800
  • Migración a Hydrogen: 42 developer-days
  • Componentes React: 78

Proyecto C (cosméticos, 240 SKU):

  • Liquid LOC: ~6100
  • Migración a Hydrogen: 28 developer-days
  • Componentes React: 51

Ratio promedio: 1 Liquid LOC = 0.004 developer-day. Un tema Liquid de 5000 líneas toma ~20 developer-days en Hydrogen (sin testing + QA).

La fase más lenta: checkout flow (nativo en Shopify con Liquid, custom en Hydrogen). El Proyecto B gastó 12 días extra porque la lógica de descuentos dinámicos necesitaba retest al migrar de Liquid a React.

Análisis de Tradeoff

La migración se justifica en: alto tráfico + requerimientos de personalización. Un e-commerce de viajes (120k sesiones/día) pasó a Hydrogen y conversion subió 2.1% → 2.6%. Razón: LCP bajó de 2.8s a 1.4s, bounce rate cayó. El costo de 20 días se amortizó en 4 meses.

No se justifica en: tráfico bajo + catálogo estático. Un sitio B2B de repuestos industriales (800 sesiones/día) no amortizó el costo en 14 meses porque no hubo crecimiento de tráfico, solo cambió el stack de dev.

Costo de Runtime: Hosting + Cuota API

Quinta métrica: infraestructura y uso de API. Hydrogen en Oxygen o edge runtime self-hosted, Liquid en servidores Shopify.

Precios Oxygen (Shopify Plus):

  • Incluido: 1M requests/mes
  • Excedente: $0.50 / 10k requests

Cuota de Storefront API:

  • Hydrogen: todo viene de Storefront API (costo de query sube)
  • Liquid: server-side render, menos queries API

En un sitio de moda (200k sesiones/mes):

  • Liquid: $0 costo de hosting adicional (incluido en Shopify)
  • Hydrogen: ~$120/mes (2.4M requests, 1.4M sobre cuota)

La cuota de API en Hydrogen requiere atención. Cada ruta SSR dispara requests a Storefront API. Sin estrategia de caché agresiva, se puede exceder cuota. Usamos stale-while-revalidate:

// Ejemplo de loader en Hydrogen
export async function loader({context}: LoaderFunctionArgs) {
  const {storefront} = context;
  
  return defer({
    products: storefront.query(PRODUCTS_QUERY, {
      cache: storefront.CacheCustom({
        mode: 'public',
        maxAge: 3600,
        staleWhileRevalidate: 86400, // acepta stale 24h
      }),
    }),
  });
}

Este patrón bajó requests API 40%. Tradeoff: el contenido puede estar desactualizado hasta 1 hora (precios, stock). Es un cálculo: costo vs freshness.

La Decisión: Criterios Reales

No hay sexta métrica — aquí va la matriz. Elegimos Hydrogen cuando:

  1. 50k+ sesiones diarias — mejora de LCP impacta directamente conversion
  2. Personalización compleja — edge SSR maneja contenido dinámico rápido
  3. Team domina React — migración es smooth, velocity sube
  4. Usa Shopify Plus — Oxygen incluido, sin costo de runtime extra

Mantenemos Liquid cuando:

  1. Menos de 5k sesiones/día — costo de migración no se amortiza
  2. Catálogo estático — no hay actualizaciones frecuentes
  3. Team pequeño sin React — costo de aprendizaje es alto
  4. Budget apretado — migración + hosting no entra en presupuesto

Caso concreto: cadena de supermercados (80k sesiones/día, 4000 SKUs) → Hydrogen. TTFB 480ms → 190ms, LCP 3.2s → 1.6s. Conversion +0.5% (27% de aumento). 35 developer-days se amortizaron en 6 meses. Mismo período: hotel boutique (1200 sesiones/día) → Liquid. Tráfico bajo, LCP ya 2.1s (aceptable), migración no se justificaba.

Siguiente Paso: Enfoque Híbrido

La elección Hydrogen/Liquid no es binaria. En arquitectura headless commerce, puedes correr algunas rutas en Hydrogen (edge SSR) y dejar otras en Liquid. Por ejemplo: PDP + PLP en Hydrogen, blog + páginas info en Liquid. Este setup reduce riesgo, mantiene costo controlado.

Nuestro criterio: los números hablan. TTFB, conversion rate, developer velocity. Si tu volumen es alto y Core Web Vitals es crítico, Hydrogen es ganancia neta. Si tráfico es bajo y el team no sabe React, Liquid es la opción pragmática. La decisión vive en tu dashboard de métricas.