JavaScript and React guides
JavaScript, React and Node.js explained with real examples, from async and await and array methods to useState and building an API.

JavaScript error handling: try, catch, custom errors and async code
How to handle errors in JavaScript properly: try, catch and finally, custom error classes, errors in async code and fetch, and the mistakes that hide bugs.

Debounce and throttle in JavaScript: stop running code on every keystroke
What debounce and throttle do, how to write each in a few lines of JavaScript, when to use which, and how to debounce a search box in React.

The testing pyramid explained: unit, integration and end-to-end tests
What unit, integration and end-to-end tests are, how many of each to write, an example with Node’s built-in test runner, and what to test first.

How to structure a Node.js backend: routes, services and data access
A proven way to organise a Node.js and Express backend into routes, services and repositories, with folders by feature and code that’s easy to test.

The Node.js event loop explained, and how not to block it
How Node.js handles thousands of requests on one thread, what the event loop does, why some code freezes a whole server, and how to keep it responsive.

React forms: controlled vs uncontrolled inputs, and which to use
The difference between controlled and uncontrolled inputs in React, when each is the better choice, and how to handle submit, validation and errors.

Environment variables in Node.js: .env files without leaking secrets
Use environment variables and .env files in Node.js with the built-in --env-file flag, check them at startup, and keep API keys out of Git and the browser.

React useMemo and useCallback: when you actually need them
What useMemo and useCallback do, the few cases where they make React faster, why wrapping everything doesn't help, and what React Compiler changes.

JavaScript fetch explained: GET, POST and handling errors properly
How to use fetch in JavaScript to get and send data, read JSON, add query parameters and headers, set a timeout, and catch the errors fetch doesn't throw.

How to build a simple REST API with Node.js and Express
Build a small REST API with Node.js and Express 5, step by step, with routes to list, create, update and delete items, input checks and error handling.

React useState: 6 common mistakes and how to fix them
Why your React state doesn't update, shows an old value or loses changes, with six common useState mistakes, the fix for each, and code you can copy.

JavaScript map, filter and reduce explained, with real examples
How map, filter and reduce work in JavaScript, when to use each one, and how to combine them, with examples from real product and order data.

React useEffect explained, and when you don't need it
What useEffect is for, how the dependency array and cleanup work, how to fetch data without race conditions, and the cases where an effect only adds bugs.

JavaScript async and await explained, with real examples
What promises are, how async and await make them readable, how to handle errors, and how to run requests in parallel, with the mistakes that cause most bugs.