
[04 — Project]
OpenShop
Framework-agnostic headless commerce toolkit for Shopify storefronts — reactive primitives, resilient cart, exact money math.
- TypeScript
- React
- Vue 3
- Svelte
- Shopify Storefront API
- GraphQL
- pnpm
- Turborepo
- Vitest
[Overview]
What it does
OpenShop is a toolkit, not a framework. It gives you the hard-to-get-right parts of commerce — a typed, resilient Storefront API client, a cart that's hard to corrupt, money math exact to the cent, and consent-aware analytics — as small reactive primitives that drop into the framework and runtime you already use (Next.js, React Router, SvelteKit, Astro, Node, Deno, Cloudflare Workers, Vercel…).
It takes the architectural direction of the latest Shopify Hydrogen — commerce pulled out of the framework — and pushes it further: resilience, caching and reactivity are built into the core from day one. Signals-style reactive store, exponential backoff with jitter, circuit breaker, stale-while-revalidate cache and a dogpile guard.
The architecture is a plain-TypeScript core (@openshop/core) with thin per-framework bindings: React, Vue 3 and Svelte share the exact same core, proving framework-agnosticism. It's a pnpm + Turborepo monorepo, shipped with a zero-config example storefront that doubles as a living integration test.
[Highlights]
Highlights
- 01Typed Storefront API client, no codegen: timeout, exponential backoff + jitter, circuit breaker.
- 02Signals-style reactive store: components re-render only on the slice they read.
- 03Optimistic cart, serialized server-reconciled mutations, rollback on failure.
- 04Integer minor-unit money math — never float, exact to the cent.
- 05Pluggable stale-while-revalidate cache + edge adapters (Cloudflare KV, Web Cache API).
- 06Framework-agnostic TypeScript core with React, Vue 3 and Svelte bindings; pnpm + Turborepo monorepo.