R
Interview Deckreact · next.js · senior/staff
0·0·122
System Design

Shopify Hydrogen — Framework React

Framework headless do Shopify baseado em Remix. Storefront customizada com performance otimizada.

Hydrogen é o framework React/Remix oficial do Shopify para construir storefronts headless. Roda nativamente em Oxygen (CDN edge do Shopify) ou em qualquer host (Vercel, Netlify). Diferente de temas Liquid: você controla todo o front-end com React/TypeScript moderno, mas continua conectado ao backend Shopify (produtos, checkout, customer). Stack: Remix + React Server Components (Hydrogen v2+) + Tailwind + GraphQL Storefront API.

Problema
Temas Liquid tradicionais limitam UX: cada loja parece igual, performance depende do tema, customização avançada é difícil. Headless puro (Next.js direto) exige reinventar todo o cliente Storefront API + carrinho + checkout.
Solução
Hydrogen: SDK de componentes prontos (`<ProductProvider>`, `<CartProvider>`, `<Money>`, `<Image>`), client GraphQL otimizado, server caching, integrações nativas com Shopify Checkout. Você ganha velocidade do headless sem perder o ecossistema Shopify (apps, payments, analytics).
Tip
Hydrogen v2 (lançado 2023) migrou para Remix + RSC. Esqueça tutoriais pré-2023 — o Hydrogen v1 era diferente. Use Hydrogen + Oxygen para deploy edge global por default. Se já está no Vercel, dá para deployar lá também, mas perde algumas otimizações de cache.
// app/routes/products.$handle.tsx (Hydrogen v2 + Remix)
import { json, type LoaderArgs } from '@shopify/remix-oxygen'
import { useLoaderData } from '@remix-run/react'
import { Image, Money, ProductProvider } from '@shopify/hydrogen'

const PRODUCT_QUERY = `#graphql
  query Product($handle: String!) {
    product(handle: $handle) {
      id title descriptionHtml
      featuredImage { url altText width height }
      priceRange { minVariantPrice { amount currencyCode } }
      variants(first: 100) { nodes { id title availableForSale } }
    }
  }
`

export async function loader({ params, context }: LoaderArgs) {
  const { product } = await context.storefront.query(PRODUCT_QUERY, {
    variables: { handle: params.handle },
    cache: context.storefront.CacheLong(), // cache no edge
  })
  if (!product) throw new Response('Not found', { status: 404 })
  return json({ product })
}

export default function Product() {
  const { product } = useLoaderData<typeof loader>()
  return (
    <ProductProvider data={product}>
      <Image data={product.featuredImage} sizes="(max-width: 768px) 100vw, 50vw" />
      <h1>{product.title}</h1>
      <Money data={product.priceRange.minVariantPrice} />
      {/* AddToCart pode usar useCart() hook do Hydrogen */}
    </ProductProvider>
  )
}
Q.Hydrogen vs Next.js para Shopify: qual escolher?
A.Hydrogen: componentes Shopify prontos (Money, Image, ProductProvider), client GraphQL otimizado, deploy nativo no Oxygen com cache no edge, integração com Shopify Checkout sem código. Next.js: você implementa tudo do zero mas tem flexibilidade total e ecossistema React maior. Para storefront pura: Hydrogen. Para app híbrido com mais que loja: Next.js com SDK Storefront.
Q.O que é Oxygen?
A.Oxygen é o hosting edge do Shopify para Hydrogen. Roda em workers globais (similar Cloudflare). Inclui cache automático de queries GraphQL, deploy via GitHub integration, e previews por branch. Gratuito para lojas Shopify Plus. Não obrigatório — Hydrogen também roda em Vercel/Netlify/Cloudflare Workers.
Q.Como funciona o checkout no Hydrogen?
A.Hydrogen NÃO implementa o checkout — você redireciona para o checkout hospedado do Shopify (com domínio próprio configurado). Vantagem: PCI compliance, fraud detection, payment methods já configurados. Desvantagem: você perde controle visual da última etapa. Para checkout customizado completo, precisa Shopify Plus + Checkout Extensibility.
112/122← →