
Lifting State up in React
Lifting state up in React explained clearly, including shared state, single sources of truth, child callbacks, and when moving state higher helps.
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.

Lifting state up in React explained clearly, including shared state, single sources of truth, child callbacks, and when moving state higher helps.

Five habits of a good web developer, covering clean code, performance, testing, collaboration, curiosity, standards, and communication beyond code.

How to read JavaScript errors and stack traces in the browser, including common error types, line numbers, call stacks, and a practical debugging workflow.

Pass by value vs. reference in JavaScript explained clearly, including why objects seem shared, how reassignment differs from mutation and common beginner bugs.

Local hiring in Brighton or London can support communication, tailored solutions, prompt help and the local economy; remote‑first work may also be suitable.

data‑* Attributes and dataset in JavaScriptUse data attributes and dataset in JavaScript to connect HTML and behaviour cleanly, handle camelCase mapping, event delegation, and string values.

classList in JavaScript: add(), remove(), toggle(), and contains()Use classList in JavaScript for add(), remove(), toggle(), and contains(), with cleaner DOM state updates, validation examples, and className cautions.

DOMContentLoaded vs. load in JavaScriptCompare DOMContentLoaded and load in JavaScript, including parsing, asset loading, script timing, selector failures, and when each event is useful.

querySelector Returns null in JavaScriptDebug querySelector returning null in JavaScript by checking selector syntax, DOM timing, missing elements, search scope, and querySelectorAll differences.