
Building Custom Hooks in React
Building custom hooks in React explained with reusable stateful logic, naming rules, composition examples, and why hooks share logic rather than state.
Articles
This is a very broad category within my articles which encompasses any aspect of web development, from initial design and architecture to coding, testing, and deployment.
Below you will find a subset of articles from my blog specifically about Development. This is an area I have worked with for many years, and it has been a regular subject in my writing. There are four hundred two articles collected together for you below.

Building custom hooks in React explained with reusable stateful logic, naming rules, composition examples, and why hooks share logic rather than state.

Static site generation has continued to grow and grow in popularity. I try and explain what one is, and why it might be suitable to you or your project.

How Netlify build hooks deploy static front ends from CMS updates, scheduled changes, content edits, preview needs, and simple publishing workflows.

Compare static generation and server‑side rendering in Next.js through freshness, request‑time data, performance, SEO, operational cost, and page intent.

When you set up a custom domain in Netlify, the default `netlify.com` subdomain still returns your app, which can lead to duplicate content. It is an easy fix.

On the occasion that you need to break a single (or several) CSS rules out of the nested structure of your CSS, the Sass @at‑root rule is exactly what you need.
Use Sass loops more deliberately, including while, for, and each patterns, generated selectors, readable output, and where loops beat repetition.

How Storybook can document front‑end components, states, edge cases, accessibility checks, and design conversations outside the main application.

Hide empty elements with the CSS :empty pseudo‑class, including strict matching rules, whitespace caveats, supported selectors, and practical UI uses.

User‑select makes stopping visitors from selecting items on‑page easy, and can be combined with ::selection to capture the browsers where user‑select is absent.

Need a little PHP inside a Gatsby build? This guide shows a pragmatic way to prepend server‑side code when a fully static approach is not enough.

Conditional comments were once the standard way to target Internet Explorer. This guide shows how the non‑IE pattern works and where it catches people out.

The differences between throttling and debouncing in JavaScript, including practical TypeScript code examples. Optimise event handling and improve performance.

Manage colours, spacing, typography, breakpoints, and component values in front‑end code without scattering design decisions or weakening consistency.

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

Dynamic routes in Next.js explained with `[slug]` pages, route params, nested segments, and why file‑based dynamic routing simplifies content‑driven sites.
Math.random()JavaScript Math.random() explained beyond the basics, including pseudo‑random generation, browser history, ranges, array indexes, and randomness limits.

How Shopify theme constraints shape Liquid front‑end work, including product data, sections, snippets, checkout limits, apps, performance, and editor needs.