finds.dev← search

// the find

basementstudio/commerce-toolkit

★ 289 · TypeScript · MIT · updated Sep 2025

Ship better storefronts 🛍

A monorepo of three focused packages for building Shopify storefronts: cart state management hooks (on top of react-query), a CLI code generator that wraps Genql for type-safe GraphQL SDKs, and a countdown/drop reveal utility. Built by basement.studio and battle-tested on high-traffic creator merch stores.

- The sdk-gen approach using Genql avoids the graphql package as a runtime dependency, which matters for bundle size in storefront contexts where every KB counts.

- createStorefrontHooks is genuinely well-designed—you bring your own fetchers/mutators, so it works with any backend, not just Shopify. The factory pattern keeps the API clean without magic.

- The drop package is a niche but real need: countdown-gated reveals are common for limited merch drops and there's nothing obvious to reach for otherwise. SSR hydration caveats are documented honestly.

- Working Next.js + Shopify examples with committed generated output means you can see exactly what you're getting before running any code.

- Last meaningful activity looks sparse and the packages are pinned to react-query v4, which is two major versions behind. Adopters on TanStack Query v5 will hit breaking API differences immediately.

- The sdk-gen CLI is essentially a thin wrapper around Genql's existing CLI—it adds minimal abstraction and could easily be replaced by using Genql directly, leaving this package with a weak reason to exist long-term.

- No support for server-side cart operations (e.g., React Server Components, server actions), which is increasingly the default pattern in Next.js App Router projects. The whole hooks model is client-only.

- 289 stars and 11 forks after what appears to be 2+ years suggests limited community traction; if you hit an edge case or bug, you're mostly on your own or submitting a PR yourself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →