
JavaScript's Math.random()
JavaScript Math.random() explained beyond the basics, including pseudo‑random generation, browser history, ranges, array indexes, and randomness limits.
Articles
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.

Math.random()JavaScript Math.random() explained beyond the basics, including pseudo‑random generation, browser history, ranges, array indexes, and randomness limits.

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

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

How Liquid templates shape e‑commerce front‑end work, including products, collections, snippets, theme constraints, content, and safe customisation.

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

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

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.

Discover advanced responsive web design techniques with CSS Grid, clamp(), container queries, and JS enhancements for performance‑optimised, adaptive sites.

How client‑side rendering can affect search visibility, and what to check around content, links, metadata, routing, loading states, and fallbacks.

_app and Custom _document in Next.jsCustom _app and _document in the Next.js Pages Router: shared layout, application setup and server‑rendered HTML, with historical Next.js 8 examples.

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.

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

AbortControllerHow to prevent race conditions in JavaScript with AbortController, including stale search results, request cancellation, and browser support caveats.

Cross‑browser compatibility ensures a consistent user experience across different browsers. Best practices, CSS, and JS techniques, and testing strategies.

next/link for Client‑Side Navigation
See why target="_blank" needed rel="noopener" in 2018, how noreferrer differs, and why modern browsers and user choice still matter.

Event delegation in JavaScript manages child element events via a single parent listener. Here, I explore how it works, its benefits, and practical use cases.

The React Context API explained with Provider and Consumer examples, prop drilling trade‑offs, shared app state, and when context is not the right answer.