Blog
Practical notes on JavaScript tooling, module systems and the platform decisions behind the work we do
-
Shopify Plus vs Advanced: What the Extra Fee Buys
Shopify Plus vs Advanced: Plus costs GBP 1,950 a month to GBP 259, so upgrade for checkout extensions, custom Functions and API limits, not fees.
-
React useActionState: Forms That Keep Their Input
React useActionState returns the last action result, a form dispatcher and isPending, and clears fields on success unless you echo the values back.
-
Shopify Customer Account UI Extensions: Pick a Target
Shopify customer account UI extensions: which target to use, how to build an order action, and how the extension safely calls your own backend.
-
Magento to Shopify Migration: What Ports, What Breaks
Magento to Shopify migration: what ports cleanly, what to rebuild (variants, customer groups, store views) and how to turn url_rewrite into 301s.
-
CSS light-dark(): Dark Mode Without Media Queries
CSS light-dark() returns one of two colours based on an element's color-scheme, so dark mode and theme toggles need no media queries.
-
Shopify Metafield Definitions in TOML: Ship the Schema
Declare Shopify metafield and metaobject definitions in shopify.app.toml so every shop gets the same schema on deploy, and learn the limits that bite.
-
Shopify Product Recommendations API: Theme and Headless
Fetch related or complementary products with the Shopify product recommendations API, in Hydrogen or a theme, and fix empty results after a migration.
-
fetchpriority=high: Load Your LCP Image First
Add fetchpriority="high" to the LCP image, drop loading="lazy", and preload only when the browser finds the hero late, then confirm it in DevTools.
-
Migrate Gift Cards to Shopify Without Losing Balances
To migrate gift cards to Shopify, recreate each live card with giftCardCreate using its old code and remaining balance, then reconcile at cutover.
-
Shopify Oxygen Environment Variables: Set, Pull, Deploy
Shopify Oxygen environment variables are set per environment, read from context.env in Hydrogen loaders, and only change after a redeploy.
-
Node.js --env-file: Load .env Without dotenv
Load a .env file in Node without dotenv using --env-file or process.loadEnvFile, plus the precedence and syntax rules that break migrations.
-
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.