The first real production migrations are public. A Polish candle store ships on TanStack Start + Cloudflare Workers + Rust/WASM Shopify Functions. A Chinese dev rebuilds a two-year Next.js + Shopify Headless project on TanStack Start because — in his words — he never wants to be tortured by Next.js again.
Two data points are not a trend. But two data points published the same week, both from teams who already shipped headless Shopify, are worth reading honestly.
What are they actually getting? What are they giving up? And does any of it threaten Hydrogen's position in 2026?
The Two Migrations on the Table
1. kaheli.pl — TanStack Start + Cloudflare Workers + Rust Functions
Konrad Janeczek published a full architecture write-up on May 2 for a Polish scented-candle brand running headless Shopify. The stack:
- TanStack Start (file-based SSR router on Vite) for the storefront
- Cloudflare Workers for edge SSR — no Node.js server anywhere
- Rust → WASM Shopify Functions for delivery customization (InPost lockers, DPD courier hiding logic)
- Preact components inside Shopify's checkout sandbox for a localized thank-you page
@shopify/api-codegen-presetwiring TypeScript types straight from the Storefront GraphQL schema
The result he reports: cold pages render in well under 100 ms globally, warm pages essentially free. Edge cache TTL of 5 minutes via Cloudflare's Cache API absorbs most traffic before it ever reaches Shopify.
This is not a toy. It is a single-Worker production deployment with three environments, Cloudflare Access on staging, varlock for env-var type safety, Biome v2 for tooling, and a strict noUncheckedIndexedAccess TypeScript config.
2. liaoyia — Two years of Next.js + Shopify rebuilt on TanStack Start
On April 21, @liaoyia posted (in Chinese) that his team spent nearly three weeks migrating a two-year-old Next.js + Shopify Headless project to TanStack Start. The motivation was direct: Next.js routing was blocking dev-mode reloads by 10+ seconds in his local environment.
He did not migrate to Hydrogen. He migrated to TanStack Start.
That is the part Hydrogen teams should sit with for a minute.
What These Stacks Actually Buy You
Both of these projects share a pattern. They keep Shopify for what Shopify is best at — the catalog, the checkout, the payments, the agentic surface — and they build the frontend on the runtime they actually want.
For TanStack Start specifically, the wins are concrete:
- File-based SSR routing on non-Node runtimes. This is the single technical thing that rules out most of TanStack Start's competitors when the deployment target is Cloudflare Workers. Most React meta-frameworks assume a Node server. TanStack Start does not.
- Vite-native dev experience. Hot module reload is fast because the dev tool is fast. Janeczek did not have to fight with build performance.
- First-class TanStack Query integration via
setupRouterSsrQueryIntegration. No double-fetch. The query client dehydrates server-side, hydrates client-side, and React components read straight from cache. - One Zod schema, two uses. TanStack's
createServerFn().inputValidator(z.object(...))validates the request body at runtime and types the handler's input. Same schema, no drift.
That is a real DX story. And if your team's pain point with Hydrogen is that it is opinionated about React Router, opinionated about Oxygen, and opinionated about the data layer — TanStack Start gives you the unopinionated alternative.
What They Are Actually Giving Up
Here is the honest accounting that neither case study fully spells out.
1. Oxygen-equivalent infrastructure becomes your problem
Cloudflare Workers is a fine runtime. But Shopify Oxygen ships with a CDN, a global edge cache, automatic preview deployments per branch, environment promotion, and integration with the Shopify admin for storefront secrets. On Workers, you build all of that yourself with Wrangler, GitHub Actions, Cloudflare Access, and Workers KV or R2.
Janeczek's case study is honest about this — three environments, one Cloudflare Worker, manual feature-flag plumbing with a fail-closed convention. That is not free. That is a platform-engineering job that one person now owns.
2. UCP-readiness is no longer free
The Storefront Catalog MCP → UCP migration on April 22 made every Shopify store an agent-readable endpoint by default. Hydrogen storefronts inherit this for free because the Storefront API surface and the schema patterns Hydrogen ships with are already aligned with the UCP envelope.
A custom TanStack Start storefront does not inherit that. You have to render the structured product data yourself, validate against the UCP shape, and keep up with every UCP iteration as Shopify ships them. Miss it, and you are invisible inside ChatGPT, Gemini, Copilot, and Perplexity — the eight AI platforms already selling products are all reading via UCP-shaped endpoints.
This was the entire thesis of the April 24 UCP migration post: the agent layer is moving fast enough that "we'll catch up later" is not a strategy.
3. Shopify AI Toolkit assumes you are in the graph
The Shopify AI Toolkit — the one connecting Cursor, Claude Code, and VSCode to Shopify schemas with code validation — works best inside the Hydrogen / Liquid / Shopify Functions perimeter. Schema-aware vibe coding is a Hydrogen-team superpower. Outside the perimeter, you are on your own with raw GraphQL introspection.
The April 8 deep-dive on Shopify AI Toolkit + Dev MCP for Hydrogen walked through how big that gap actually is. It is not nothing.
4. The "I just don't want to be tortured by Next.js" critique is real — but it is a Next.js critique
Liaoyia's complaint is about Next.js dev-mode performance and routing complexity. Not about Hydrogen.
Hydrogen does not run on Next.js. Hydrogen runs on React Router 7.9.2 + Vite + Miniflare v3 + Oxygen. Cold dev starts on a fresh Pilot project are sub-second on an M-series Mac. The April 2026 release added ten new Cookbook recipes, full Route Module type safety, and middleware support that is closer to TanStack's loader pattern than to anything Next.js ships.
If you read liaoyia's tweet as "Next.js is painful for headless Shopify, here is the alternative" — it is. But the alternative he reached for was TanStack Start because his team was already on Next.js. A Hydrogen team starting today is not making the Next.js choice in the first place.
Why the Coupling Is the Moat in 2026
This is the part last week's "Is Hydrogen Actually Headless?" post argued, and the TanStack case studies make even sharper.
The coupling Loïc Delobel critiqued — Oxygen + checkout + Payments — is exactly the perimeter that gets you UCP, Agentic Storefront, and AI Toolkit for free. The "true headless" alternative trades that perimeter for runtime freedom.
In 2024, runtime freedom was the obvious win. The agent layer did not exist. The checkout was just a checkout.
In 2026, the perimeter ships eight AI selling channels by default, an agent-readable catalog by default, and schema-aware coding tools by default. The trade is no longer "freedom vs. lock-in." It is "freedom vs. distribution."
For most Shopify merchants, distribution wins. The teams who choose differently are usually doing it for one of three reasons:
- Brand-defining UI complexity — Janeczek's case study fits here. The custom delivery flow, the candle-care thank-you page, the localization-by-context. A storefront where the frontend itself is the product.
- Existing investment in a non-Node runtime — teams already deep on Cloudflare Workers, Deno Deploy, or Bun who do not want to operate two runtimes side by side.
- Active pain with a current framework — liaoyia migrating off Next.js is this case. Not anti-Hydrogen. Anti-Next.js.
If none of those three apply, Hydrogen is still the default that buys you the most platform per line of code.
What Hydrogen Teams Should Actually Do This Week
The TanStack Start signal is real. It is not big enough to change Hydrogen's strategic position. But it is a useful forcing function:
- Confirm your Hydrogen version is on 2026.4 or higher. If you are still on 2026.1, the dev-mode performance and middleware story is genuinely worse than what TanStack Start ships today. Upgrade. The April 2026 release brings React Router 7.9.2 and Miniflare v3 — the same modern Vite + edge runtime story TanStack uses.
- Verify your storefront serves UCP-shaped product data. Every Hydrogen template ships this correctly out of the box. Custom storefronts often do not. The April 24 UCP migration playbook covers the diff.
- Treat your dev experience as a competitive surface. TanStack Start's win in both case studies is DX, not architecture. If your team is fighting build times, slow HMR, or routing complexity in Hydrogen — those are fixable. They are not reasons to migrate off the platform.
Where Weaverse Fits
Both paths are valid. We build on Hydrogen because the platform-engineering work — UCP rendering, Storefront API proxy, Oxygen edge caching, Customer Account extensions — ships correctly out of the box, and that lets us spend our hours on the storefront itself instead of the runtime under it. We ship Hydrogen storefronts for clients who need that focus. If you are weighing TanStack Start vs Hydrogen for your next build or rescue project, we are happy to pressure-test the trade-off with you — senior engineers, competitive quotes, no agency overhead. Talk to us →.
Weaverse Pilot is built directly on the Hydrogen 2026.4 stack — React Router 7.9.2, Vite, Miniflare v3 — with all the Oxygen, UCP, and Storefront API proxy patterns wired correctly out of the gate. No platform-engineering overhead. No UCP rendering you have to maintain by hand.
Scaffold a new Pilot storefront:
npx @weaverse/cli@latest create --template=pilot
If your team is using AI coding tools — Claude Code, Cursor, Copilot, Windsurf, Gemini CLI — install the open-source Shopify Hydrogen Skills:
npx skills add Weaverse/shopify-hydrogen-skills
The skills give your AI agent commerce-aware context for Hydrogen's React Router middleware patterns, the UCP product shape, and the API 2026-04 cart graph. Schema-aware vibe coding without leaving the Hydrogen perimeter.
The Bottom Line
TanStack Start + Cloudflare Workers is a real, valid headless Shopify stack in 2026. The first production cases are public. The DX story is good.
But the migrations also make the Hydrogen value proposition sharper, not weaker. Every line in those case studies that reads "we built X ourselves" is a line Hydrogen teams did not have to write — and a UCP, Agentic Storefront, or AI Toolkit integration they get for free as Shopify ships it.
The "true headless" path is a real choice. It is not an obvious one. Pick it because your storefront is the product, not because Next.js was painful.
Sources
- kaheli.pl headless Shopify case study — Konrad Janeczek (May 2, 2026)
- @liaoyia X thread — Next.js → TanStack Start migration (Apr 21, 2026)
- Hydrogen April 2026 release notes — Shopify
- Shopify Storefront Catalog MCP now implements UCP — Shopify Dev Changelog (Apr 22)
- Shopify AI Toolkit — Shopify Dev Changelog (Apr 9)
- Is Shopify Hydrogen Actually Headless in 2026? — Weaverse Blog (May 5)
- TanStack Creator Tanner Linsley Just Validated Shopify Hydrogen — Weaverse Blog (Apr 25)
- Weaverse Pilot theme
- Shopify Hydrogen Skills — GitHub



