
useReducer in React
useReducer in React explained clearly, including reducer functions, action objects, complex state updates, and when it is a better fit than useState.
Articles
The guides are the practical part of this archive: working explanations for a specific web development problem, written to show the decision as well as the answer. The subject varies, but the aim is consistent: enough context to use the technique sensibly rather than copy it blindly.

useReducer in ReactuseReducer in React explained clearly, including reducer functions, action objects, complex state updates, and when it is a better fit than useState.

Dynamic routes in Next.js explained with [slug] pages, route params, nested segments, and why file‑based dynamic routing simplifies content‑driven sites.

301 vs. 307 RedirectsCompare 301 and 307 redirects clearly, including permanence, browser behaviour, SEO impact, cache handling, temporary moves, and when each status code fits.
Math.random()JavaScript Math.random() explained beyond the basics, including pseudo‑random generation, browser history, ranges, array indexes, and randomness limits.

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.

React Hooks, introduced in React 16.8, bring state and lifecycle features to functional components. Here, I explore how they work and why they matter.

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.

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.

_app and Custom _document in Next.jsCustom _app and _document in Next.js explained clearly, including shared layout, global setup, server‑rendered HTML, and what each file is actually for.

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
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.

Merging objects in JavaScript is straightforward once you know the tools. This guide covers Object.assign(), spread syntax, and overwrite behaviour.