Blog
Practical notes on JavaScript tooling, module systems and the platform decisions behind the work we do
-
Shopify App Proxy: Verify the Signature, Serve Liquid
A Shopify app proxy serves your app from the store domain; verify its HMAC signature, trust only the signed customer ID and return Liquid.
-
Shopify GraphQL Rate Limits: Budget by Query Cost
Shopify GraphQL rate limits charge points per query, not per request. Read throttleStatus, wait for the restore rate and retry THROTTLED safely.
-
Uint8Array toBase64: Retire btoa and Buffer Hacks
Uint8Array toBase64 and fromBase64 encode bytes natively in browsers and Node 26, with base64url, hex and strict decoding built in.
-
Shopify Delivery Customization: Hide and Rename Rates
How a Shopify delivery customization function hides, renames and reorders checkout shipping rates, with working code and the limits that catch builds out.
-
Shopify Theme Check in CI: Fail on What Matters
Run shopify theme check in CI with the right fail level, the asset size checks the recommended preset leaves off, and a baseline for older themes.
-
Next.js Middleware to Proxy: What the Rename Changes
Next.js 16 renames middleware.ts to proxy.ts and pins it to Node.js, so here is the codemod, the renamed flags and when to keep middleware.
-
Shopify Draft Order API: Quote to Paid Order
Shopify's draft order API turns a quote into a paid order in four mutations: create, calculate, invoice, complete, without losing stock.
-
Shopify Predictive Search API: Build a Search Box
The predictiveSearch query returns up to ten products, collections, pages and query suggestions per request; here is how to wire one up.
-
Declarative Shadow DOM: SSR Without the Flash
Declarative Shadow DOM ships shadow roots in the HTML itself, so server-rendered web components paint their styles before any JavaScript runs.
-
Hydrogen Cart Handler: One Route, Every Mutation
How Hydrogen's cart handler wires a cart ID cookie, one /cart action route and optimistic line updates into a headless Shopify storefront.
-
Import Discount Codes Into Shopify in Bulk
Shopify has no CSV import for discount codes, so moving a WooCommerce or Magento coupon list across takes two Admin GraphQL mutations and batches of 250.
-
Partitioned Cookies: CHIPS for Third-Party Embeds
Set Partitioned on a cross-site cookie and CHIPS gives it a separate jar per top-level site, which is how an embedded widget keeps its session.