Published onJanuary 14, 2025TypeScript's Type System Is More Powerful Than You ThinktypescriptfrontendConditional types, mapped types, and template literal types, the TypeScript features that separate good type definitions from great ones.
Published onJuly 13, 2024How does React know when to re-renderreactfrontendReferential equality in JavaScript and it's importance in React's rendering behavior.
Published onFebruary 28, 2024React Suspense and Data FetchingreactfrontendSuspense has been in React for years, but its data-fetching story is finally stabilizing. Here's what it is, how it works, and when it's the right tool.
Published onNovember 17, 2023CORS Explained, Why Your Request Is Being BlockedhttpsecurityfrontendCORS errors are one of the most common frustrations in web development. Here's how the browser's same-origin policy works, and how CORS solves it.
Published onOctober 5, 2023When to Use useReducer Instead of useStatereactfrontenduseState is the right default. But when state updates depend on each other or your update logic gets complex, useReducer is the better tool.
Published onMay 22, 2023How async/await Actually Worksjavascriptfrontendasync/await is syntax sugar over Promises, which are built on the event loop. Understanding the full stack makes async code far less mysterious.
Published onApril 3, 2023CSS Stacking Contexts, Why Your z-index Isn't Workingcssfrontendz-index is not global. Stacking contexts create isolated z-index scopes, which is why your modal ends up under the sidebar.