Blog
Practical notes on JavaScript tooling, module systems and the platform decisions behind the work we do
-
Shopify Web Pixels: App Pixel or Custom Pixel?
App pixels run in a strict web-worker sandbox and read settings from the Admin API, while custom pixels run in a lax iframe: how to choose.
-
Shopify Theme App Extensions: App Blocks or Embeds
Script tags stop running on 1 March 2027, so here is how a Shopify theme app extension works: app blocks, app embeds, limits and deep links.
-
Import Maps vs a Bundler: When to Skip the Build
Import maps resolve bare specifiers in the browser with no build step, but they never replace a bundler's tree-shaking, chunking or minification.
-
Shopify Cart Transform Functions: Bundles at Checkout
A Shopify cart transform function rewrites cart lines at checkout with three operations: expand a bundle, merge lines, or update price and title.
-
Shopify Storefront API @inContext: Local Prices
The Storefront API's @inContext directive sets country and language per query, but carts ignore the country argument and take buyerIdentity instead.
-
CSS @scope Is Baseline: Scope Styles Without a Build
CSS @scope became Baseline in March 2026: how the scope root, donut limits and scope proximity behave, and what still breaks in Safari.
-
Migrate Customers to Shopify Without Losing Consent
To migrate customers to Shopify, upsert each record with customerSet, then write marketing consent and its original date in a separate mutation.
-
Shopify Hydrogen Caching: Sub-Requests and Full Pages
Shopify Hydrogen caching works in two layers: CacheShort or CacheLong on each sub-request, and Oxygen-Cache-Control for whole pages.
-
command and commandfor: Open a Dialog, No JS
The command and commandfor attributes open a dialog or popover from a button with no JavaScript, and they went Baseline in December 2025.
-
Migrate to Shopify Expiring Offline Access Tokens
Public Shopify apps must use expiring offline access tokens from 1 January 2027: how to switch, cycle existing tokens and handle refresh failures.
-
Shopify Checkout UI Extensions: What Runs Where
Where a Shopify checkout UI extension can render, which capabilities it needs, and why blocking checkout now takes a validation function.
-
content-visibility: auto Without the Layout Shift
content-visibility: auto skips rendering for offscreen page sections; here is how to size them so the scrollbar stays put, and when to leave it off.