Vercel's 'Hydrogen (v1)' preset matches any project depending on
@shopify/hydrogen and runs its v1 builder, which fails looking for
dist/worker. We only used the preview package as a Storefront API client,
so talk to the API directly instead:
- services/shopify/client.ts: plain fetch to /api/{version}/graphql.json
with the public token header, @inContext country/language defaults, and
the same graphql() / unwrapStorefrontResult API as before
- graphql/gql.ts: small helper that joins a document with its fragments
(de-duplicated); the queries themselves are unchanged
- Explicit response types at each call site in place of the generated
gql.tada types; local ProductFilter input type
- Drop @shopify/hydrogen, graphql, the TS plugin and 'hydrogen gql check'
- Copy no longer mentions Hydrogen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An unset or blank VITE_SHOPIFY_DOMAIN reached the Hydrogen client as an
empty storeDomain, which throws 'storeDomain is required and must be
non-empty'. Fall back to the tokenless mock.shop store instead, and only
send the public token alongside a configured domain.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ports nextjs-templates/shopify-storefront to Vite, TanStack Router/Query,
Tailwind v4 and Hono, without the AI store assistant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>