Blog
-
Shopify Webhook Filters: Syntax, Traps and Events
Shopify webhook filters drop deliveries based on current payload values, so they cannot see a change, and a bad field name silently stops every delivery.
-
Shopify robots.txt: Edit It Without Losing Default Rules
To edit a Shopify robots.txt, add robots.txt.liquid, then diff the output, because the template can swap in older rules than Shopify's default.
-
Mock fetch in the Node Test Runner: Pick the Right Layer
To mock fetch in the Node test runner, stub globalThis.fetch with t.mock.method, or use MockAgent or MSW when the real fetch code should run.
-
Hydrogen 2026.10 Migration: Framework to Library
The Hydrogen 2026.10 migration swaps a framework for a library you wire up yourself, and cart, analytics and CSP can fail silently.
-
Checkout UI Extension Fetch: CORS, Tokens and 401s
A Shopify checkout UI extension fetch needs network_access, a session token and CORS headers on every response, including your 401s.
-
JSON.parse BigInt: Keep Large Integers Exact
JSON.parse rounds integers above 2^53 before your reviver runs. Read context.source to revive them as BigInt, then write them back with JSON.rawJSON.
-
Built for Shopify Web Vitals: Track What Gets Graded
Built for Shopify grades embedded apps on LCP, CLS and INP at p75 over 28 days. Capture the same web vitals through App Bridge and find the slow route.
-
Squarespace to Shopify Migration: Script the CSV
A Squarespace to Shopify migration needs the product CSV remapped: handles on every variant row, sale prices swapped and weights converted to grams.
-
Web Locks API: Coordinate Work Across Browser Tabs
The Web Locks API gives every tab on an origin one shared lock: use navigator.locks.request to refresh a token once or elect a single leader tab.
-
Shopify Combined Listings: API Setup and Theme Fixes
Shopify combined listings group separate colour products under one Plus parent. Create it with combinedListingUpdate, then fix the theme picker.
-
Shopify Theme Editor Events: JS That Survives Re-render
Shopify theme editor events such as shopify:section:load fire on every section re-render, so build sections as custom elements that set up and clean up.
-
Node --watch vs nodemon: When to Drop the Dependency
node --watch replaces nodemon for most Node.js apps, watching imports and env files, but --watch-path fails on Linux and files read with fs are missed.