
Articles
Development, page 20 of 27
Development is the broadest category in my writing, so it works as the main archive rather than a narrow subject label. It brings together implementation notes and technical decisions, with delivery lessons from across the rest of the site.

Using CSS Custom Properties for Shared Design Values. 
Managing Design Values in Front‑End Code. Managing Design Values in Front‑End Code
Manage colours, spacing, typography, breakpoints, and component values in front‑end code without scattering design decisions or weakening consistency.

useReducer in React. useReducerin ReactuseReducerin React explained clearly, including reducer functions, action objects, complex state updates, and when it is a better fit thanuseState.
Dynamic Routes in Next.js. Dynamic Routes in Next.js
Dynamic routes in Next.js explained with
[slug]pages, route params, nested segments, and why file‑based dynamic routing simplifies content‑driven sites.
JavaScript’s Math.random(). JavaScript's
Math.random()JavaScript Math.random() explained beyond the basics, including pseudo‑random generation, browser history, ranges, array indexes, and randomness limits.

Shopify Theme Constraints with Liquid. Shopify Theme Constraints with Liquid
How Shopify Liquid theme constraints affect products, sections, apps, checkout, SEO, performance and the decision to stay theme‑based or go headless.

useRef in React. useRefin ReactUse useRef in React for DOM access, focus management, mutable values, previous values, integration work, and cases where refs should not replace state.

Using Liquid Templates in E‑Commerce Front Ends. Using Liquid Templates in E‑Commerce Front Ends
How Liquid templates shape e‑commerce front‑end work, including products, collections, snippets, theme constraints, content, and safe customisation.

Why forEach Does Not Wait for async Callbacks. Why
forEachDoes Not Wait forasyncCallbacksSee why forEach() ignores promises returned by async callbacks, then choose sequential for...of or concurrent Promise.all() with clear failure handling.

Checking Rendered HTML for JavaScript Pages. Checking Rendered HTML for JavaScript Pages
Check rendered HTML for JavaScript pages by comparing source and DOM output across metadata, headings, links, schema, content, hydration, and crawlability.

Class vs. Functional Components in React. Class vs. Functional Components in React
Class and functional components are key to React development. In this article I explore differences, advantages, and when to use each in modern React apps.

Advanced Techniques for Responsive Web Design. Advanced Techniques for Responsive Web Design
Discover advanced responsive web design techniques with CSS Grid,
clamp(), container queries, and JS enhancements for performance‑optimised, adaptive sites.
Client‑Side Rendering and Search Visibility. Client‑Side Rendering and Search Visibility
How client‑side rendering can affect search visibility, and what to check around content, links, metadata, routing, loading states, and fallbacks.

Custom _app and Custom _document in Next.js. Custom
_appand Custom_documentin Next.jsCustom
_appand_documentin the Next.js Pages Router: shared layout, application setup and server‑rendered HTML, with historical Next.js 8 examples.
The JavaScript Event Loop: A Beginner’s Guide. The JavaScript Event Loop: A Beginner's Guide
The JavaScript event loop manages asynchronous tasks in a single‑threaded environment. I explore how it works with the call stack, task queue, and microtasks.

Creating Interactive User Interfaces with HTML, CSS, and JavaScript. Creating Interactive User Interfaces with HTML, CSS, and JavaScript
Create interactive interfaces with HTML, CSS, and JavaScript, using semantic controls, accessible state, event handling, and progressive enhancement.

How to Prevent Race Conditions in JavaScript with AbortController. How to Prevent Race Conditions in JavaScript with
AbortControllerHow to prevent race conditions in JavaScript with
AbortController, including stale search results, request cancellation, and browser support caveats.
Best Practices for Cross‑Browser Compatibility. Best Practices for Cross‑Browser Compatibility
Cross‑browser compatibility ensures a consistent user experience across different browsers. Best practices, CSS, and JS techniques, and testing strategies.