# Developer Way — Sitemap

Markdown discovery index for [https://www.developerway.com](https://www.developerway.com). Every post is also available as a plain-markdown twin at the same URL with a `.md` suffix.

## Discovery surfaces

- [`/llms.txt`](https://www.developerway.com/llms.txt) — curated topic-grouped index for LLMs
- [`/articles.json`](https://www.developerway.com/articles.json) — full archive as JSON
- [`/sitemap.xml`](https://www.developerway.com/sitemap.xml) — XML sitemap for search crawlers
- [`/sitemap.md`](https://www.developerway.com/sitemap.md) — this file
- [`/rss.xml`](https://www.developerway.com/rss.xml) — RSS feed

## Top-level pages

- [Home](https://www.developerway.com/)
- [All articles](https://www.developerway.com/posts)
- [About](https://www.developerway.com/about)
- [Books](https://www.developerway.com/books)

## React

> Internals, performance, and the parts of React that don't work the way you think.

- [Can You Fetch Data with React Server Actions?](https://www.developerway.com/posts/server-actions-for-data-fetching) — Can React Server Actions replace fetch for client-side data fetching? Let's investigate and find out. ([markdown](https://www.developerway.com/posts/server-actions-for-data-fetching.md))
- [Bundle Size Investigation: A Step-by-Step Guide to Shrinking Your JavaScript](https://www.developerway.com/posts/bundle-size-investigation) — A practical guide to analyzing and reducing JavaScript bundle size. Learn bundle analysis, fix tree-shaking issues, remove duplicate libraries, and otherwise optimize your React app's JavaScript size. ([markdown](https://www.developerway.com/posts/bundle-size-investigation.md))
- [React Server Components: Do They Really Improve Performance?](https://www.developerway.com/posts/react-server-components-performance) — A data-driven comparison of CSR, SSR, and RSC under the same app and test setup, focusing on initial-load performance and the impact of client- vs server-side data fetching (including Streaming + Suspense). ([markdown](https://www.developerway.com/posts/react-server-components-performance.md))
- [React State Management in 2025: What You Actually Need](https://www.developerway.com/posts/react-state-management-2025) — Learn how to manage state in modern React apps, what is remote, URL, local, and shared state, and when you actually need a state management library. ([markdown](https://www.developerway.com/posts/react-state-management-2025.md))
- [Can We Use Local Storage Instead of Context-Redux-Zustand?](https://www.developerway.com/posts/local-storage-instead-of-context) — Why do we need Context/Redux/Zustand in React, what is the purpose of Local Storage, its limitations, and when to use it. ([markdown](https://www.developerway.com/posts/local-storage-instead-of-context.md))
- [SSR Deep Dive for React Developers](https://www.developerway.com/posts/ssr-deep-dive-for-react-developers) — Explore step-by-step how Server-Side Rendering (SSR), pre-rendering, hydration, and Static Site Generation (SSG) work in React, their costs, performance impact, benefits, and trade-offs. ([markdown](https://www.developerway.com/posts/ssr-deep-dive-for-react-developers.md))
- [Client-Side Rendering in Flame Graphs](https://www.developerway.com/posts/client-side-rendering-flame-graph) — Intro to Performance Flame Graphs. Learn how to read and extract useful info from performance flame graphs while exploring how the Client-Side rendering works in React applications. ([markdown](https://www.developerway.com/posts/client-side-rendering-flame-graph.md))
- [How React Compiler Performs on Real Code](https://www.developerway.com/posts/how-react-compiler-performs-on-real-code) — Exploring the impact of React Compiler on initial load and interaction performance. With numbers. Measured on a real app. ([markdown](https://www.developerway.com/posts/how-react-compiler-performs-on-real-code.md))
- [Existential React questions and a perfect Modal Dialog](https://www.developerway.com/posts/hard-react-questions-and-modal-dialog) — My step-by-step process for implementing a new feature from an idea to a production-ready solution using Modal Dialog as an example. ([markdown](https://www.developerway.com/posts/hard-react-questions-and-modal-dialog.md))
- [Intro to CSS animations for React developers](https://www.developerway.com/posts/intro-to-css-animations-for-react-devs) — Investigating CSS animations in React by building some useful components like slide-in drawers, expandable search field, and fancy hover effects. ([markdown](https://www.developerway.com/posts/intro-to-css-animations-for-react-devs.md))
- [Replacing React code with CSS :has selector](https://www.developerway.com/posts/replacing-react-with-css) — Looking into what the new CSS :has selector is and how it can be used to improve our React code. Includes practical and beautiful examples. ([markdown](https://www.developerway.com/posts/replacing-react-with-css.md))
- [I tried React Compiler today, and guess what... 😉](https://www.developerway.com/posts/i-tried-react-compiler) — Investigating whether we can forget about memoization in React, now that the React Compiler is open-sourced. ([markdown](https://www.developerway.com/posts/i-tried-react-compiler.md))
- [React Compiler & React 19 - forget about memoization soon?](https://www.developerway.com/posts/react-compiler-soon) — Did you know that React Compiler is not actually React 19? But when can we expect it then and forget about memo in React? And what exactly will change when the Compiler is released? ([markdown](https://www.developerway.com/posts/react-compiler-soon.md))
- [React useTransition: performance game changer or...?](https://www.developerway.com/posts/use-transition) — Looking into what React Concurrent Rendering is, what hooks like useTransition and useDeferredValue do, what are the benefits and downsides of using them. ([markdown](https://www.developerway.com/posts/use-transition.md))
- [Fantastic closures and how to find them in React](https://www.developerway.com/posts/fantastic-closures) — Deep dive into closures in JavaScript and React: how they appear, why we need them, what stale closures are, and how to prevent and fix them in React ([markdown](https://www.developerway.com/posts/fantastic-closures.md))
- [Teleportation in React: Positioning, Stacking Context, and Portals](https://www.developerway.com/posts/positioning-and-portals-in-react) — How CSS positioning works, what is Stacking Context, how to escape overflow:hidden with CSS, why we can't do everything with CSS and need Portals, how Portals work ([markdown](https://www.developerway.com/posts/positioning-and-portals-in-react.md))
- [React reconciliation: how it works and why should we care](https://www.developerway.com/posts/reconciliation-in-react) — Looking in detail into how React reconciliation algorithm works. Explore in the process quirks of conditional rendering, the 'key' attribute, and why we shouldn't declare components inside other components. ([markdown](https://www.developerway.com/posts/reconciliation-in-react.md))
- [Say no to "flickering" UI: useLayoutEffect, painting and browsers story](https://www.developerway.com/posts/no-more-flickering-ui) — How to change elements base on DOM measurements: what is the problem with useEffect, how useLayoutEffect fixes it, what is browser painting, and how SSR plays a role here ([markdown](https://www.developerway.com/posts/no-more-flickering-ui.md))
- [Refs in React: from access to DOM to imperative API](https://www.developerway.com/posts/refs-from-dom-to-api) — Looking into why we need access to DOM in React, how Refs can help with that, what are useRef, forwardRef and useImperativeHandle hooks, and how to use them properly. ([markdown](https://www.developerway.com/posts/refs-from-dom-to-api.md))
- [How to handle errors in React: full guide](https://www.developerway.com/posts/how-to-handle-errors-in-react) — Looking into how to catch and handle errors in React: usages, patterns and caveats of try/catch and ErrorBoundary, what's possible, what's not, and how to catch async errors with ErrorBoundary ([markdown](https://www.developerway.com/posts/how-to-handle-errors-in-react.md))
- [How to debounce and throttle in React without losing your mind](https://www.developerway.com/posts/debouncing-in-react) — Deep dive into debounce and throttle in React. What is debounce and throttle, how to use them in React properly, how to avoid breaking them when state and re-renders are involved. ([markdown](https://www.developerway.com/posts/debouncing-in-react.md))
- [Fetching data in React: the case of lost Promises](https://www.developerway.com/posts/fetching-in-react-lost-promises) — Deep dive into Promises and data fetching in React: what is a Promise, how and why Promises can cause race conditions and what to do about it. ([markdown](https://www.developerway.com/posts/fetching-in-react-lost-promises.md))
- [How to fetch data in React with performance in mind](https://www.developerway.com/posts/how-to-fetch-data-in-react) — Deep dive into data fetching in React. What is performance, fundamental libraries-agnostic patterns and techniques, how react lifecycle and browser limitations affect data fetching and apps rendering time and order. ([markdown](https://www.developerway.com/posts/how-to-fetch-data-in-react.md))
- [PureComponents vs Functional Components with hooks](https://www.developerway.com/posts/pure-components-vs-functional-and-hooks) — Looking into PureComponent and the problem it solved, how it can be replaced now in the hooks & functional components world, and discovering an interesting quirk of React re-renders behavior ([markdown](https://www.developerway.com/posts/pure-components-vs-functional-and-hooks.md))
- [React re-renders guide: everything, all at once](https://www.developerway.com/posts/react-re-renders-guide) — React re-renders "cheatsheet". Short descriptions with visual aid and code examples of: what re-renders are, what triggers them, most important re-renders related patterns and antipatterns to remember. ([markdown](https://www.developerway.com/posts/react-re-renders-guide.md))
- [The mystery of React Element, children, parents and re-renders](https://www.developerway.com/posts/react-elements-children-parents) — Looking into what is React Element, exploring various children vs parents relationship in React, and how they affect re-renders ([markdown](https://www.developerway.com/posts/react-elements-children-parents.md))
- [How to useMemo and useCallback: you can remove most of them](https://www.developerway.com/posts/how-to-use-memo-use-callback) — What is the purpose of useMemo and useCallback hooks, mistakes and best practices in using them, and why removing most of them might be a good idea. ([markdown](https://www.developerway.com/posts/how-to-use-memo-use-callback.md))
- [React project structure for scale: decomposition, layers and hierarchy](https://www.developerway.com/posts/react-project-structure) — How to organize React projects in a way that is scalable, structured, modular, consistent and logical. ([markdown](https://www.developerway.com/posts/react-project-structure.md))
- [React key attribute: best practices for performant lists](https://www.developerway.com/posts/react-key-attribute) — Looking into how React "key" attribute works, how to use it correctly, how to improve performance of lists with it, and why array index as key is a good idea sometimes ([markdown](https://www.developerway.com/posts/react-key-attribute.md))
- [React components composition: how to get it right](https://www.developerway.com/posts/components-composition-how-to-get-it-right) — What is components composition? How do you know when to start splitting a big component into smaller pieces and how to compose them properly? What makes a good component? ([markdown](https://www.developerway.com/posts/components-composition-how-to-get-it-right.md))
- [Implementing advanced usePrevious hook with React useRef](https://www.developerway.com/posts/implementing-advanced-use-previous-hook) — Looking into how refs work when not attached to DOM and how to use them to implement advanced usePrevious hook to get the previous state or props value. ([markdown](https://www.developerway.com/posts/implementing-advanced-use-previous-hook.md))
- [Higher-Order Components in React Hooks era](https://www.developerway.com/posts/higher-order-components-in-react-hooks-era) — What is a React higher-order component? How it can be used and why? And do we still need them in modern apps in React hooks era? ([markdown](https://www.developerway.com/posts/higher-order-components-in-react-hooks-era.md))
- [React component as prop: the right way™️](https://www.developerway.com/posts/react-component-as-prop-the-right-way) — Exploring how to pass React components as props, why we would want to do it, and what is the best pattern for the job ([markdown](https://www.developerway.com/posts/react-component-as-prop-the-right-way.md))
- [How to write performant React apps with Context](https://www.developerway.com/posts/how-to-write-performant-react-apps-with-context) — De-mystifying Context and its influence on React apps' performance. Learning a few useful patterns in the process, that could help minimize the re-renders impact and improve code's readability and scalability. ([markdown](https://www.developerway.com/posts/how-to-write-performant-react-apps-with-context.md))
- [Why custom react hooks could destroy your app performance](https://www.developerway.com/posts/why-custom-react-hooks-could-destroy-your-app-performance) — Exploring performance implications of custom React hooks and how not to shoot yourself in the foot when writing or using them. ([markdown](https://www.developerway.com/posts/why-custom-react-hooks-could-destroy-your-app-performance.md))
- [How to write performant React code: rules, patterns, do's and don'ts](https://www.developerway.com/posts/how-to-write-performant-react-code) — Looking into patterns that lead to poor performance of React apps, why they are bad, and how to recognise and avoid them. ([markdown](https://www.developerway.com/posts/how-to-write-performant-react-code.md))
- [Advanced typescript for React developers - discriminated unions](https://www.developerway.com/posts/advanced-typescript-for-react-developers-discriminated-unions) — Exploring how to discriminate unions properly and how this pattern can be useful for React developers' everyday professional life. ([markdown](https://www.developerway.com/posts/advanced-typescript-for-react-developers-discriminated-unions.md))
- [Advanced typescript for React developers - part 3](https://www.developerway.com/posts/advanced-typescript-for-react-developers-part-3) — Learning while coding what is the purpose of exhaustiveness checking, how the narrowing of types works and when typescript enums could be useful. ([markdown](https://www.developerway.com/posts/advanced-typescript-for-react-developers-part-3.md))
- [Advanced typescript for React developers](https://www.developerway.com/posts/advanced-typescript-for-react-developers) — Diving into advanced typescript concepts and understanding how and why we need things like type guards, keyof, typeof, is, as const and indexed types. ([markdown](https://www.developerway.com/posts/advanced-typescript-for-react-developers.md))
- [Typescript generics for React developers](https://www.developerway.com/posts/typescript-generics-for-react-developers) — Looking into why we need generics in Typescript, and how to use them to develop re-usable React components. And as a bonus: the secret of React hooks 😉 ([markdown](https://www.developerway.com/posts/typescript-generics-for-react-developers.md))

## AI

> How AI actually works, and how to make it behave beyond vibe-coding.

- [How AI Remembers and Why It Forgets: Part 2. Tools and Agents](https://www.developerway.com/posts/how-ai-remembers-and-forgets-part2) — What are AI tools and agents really, and how do they keep Context in check? Let's poke around Claude Code, do a few experiments, and find out! ([markdown](https://www.developerway.com/posts/how-ai-remembers-and-forgets-part2.md))
- [How AI Remembers and Why It Forgets: Part 1. The Context Problem](https://www.developerway.com/posts/how-ai-remembers-and-forgets-part1) — How does AI actually remember things between messages, and why does it forget halfway through? I ran a few experiments on Claude Sonnet and GPT-5 and wrote down what I saw. ([markdown](https://www.developerway.com/posts/how-ai-remembers-and-forgets-part1.md))
- [Debugging with AI: Can It Replace an Experienced Developer?](https://www.developerway.com/posts/debugging-with-ai) — Can AI actually debug complex React/Next.js issues? I tested it on three real bugs, investigated the root cause myself and wrote down the results. ([markdown](https://www.developerway.com/posts/debugging-with-ai.md))

## Web Performance

> Measured, not guessed. Digging into why apps are slow, and how to make them fast.

- [Tailwind vs Linaria: Performance Investigation](https://www.developerway.com/posts/tailwind-vs-linaria-performance) — Investigating performance of Tailwind vs Linaria frameworks, with a focus on initial load and interaction performance. ([markdown](https://www.developerway.com/posts/tailwind-vs-linaria-performance.md))
- [Initial load performance for React developers: investigative deep dive](https://www.developerway.com/posts/initial-load-performance) — Exploring Core Web Vitals, Chrome performance panel, what initial load performance is, which metrics measure it, and how cache control and different networking conditions influence it. ([markdown](https://www.developerway.com/posts/initial-load-performance.md))

## Life

> Blog meta, career, and the small personal-stuff I felt like writing down.

- [How it's made: the blog's story and the future](https://www.developerway.com/posts/how-its-made-the-blog-story) — Sneak peek behind the scenes. How the blog has started, how I come up with the ideas, how the blog is promoted, the money question: present and future. And the secret of the cats of course! ([markdown](https://www.developerway.com/posts/how-its-made-the-blog-story.md))
- [🦘 Prison break, or solving life like a developer️](https://www.developerway.com/posts/prison-break-solving-life-as-a-developer) — How would you deal with something like relocating to another country and becoming digital nomad? A story on how I took approach that I would use as a developer with large projects at work. ([markdown](https://www.developerway.com/posts/prison-break-solving-life-as-a-developer.md))

## Tooling

> Build tools, monorepos, Node internals. The unglamorous rig underneath the apps.

- [Custom eslint rules + typescript monorepo = ❤️](https://www.developerway.com/posts/custom-eslint-rules-typescript-monorepo) — A simple trick that allows you to write in typescript and consume right away custom eslint rules. No compilation, build or publish/link step, just write code and use it! ([markdown](https://www.developerway.com/posts/custom-eslint-rules-typescript-monorepo.md))
- [Three simple tricks to speed up yarn install](https://www.developerway.com/posts/three-simple-tricks-to-speed-up-yarn-install) — Those tricks can speed up your yarn install by up to 50% ([markdown](https://www.developerway.com/posts/three-simple-tricks-to-speed-up-yarn-install.md))
- [Learning by fixing: Node.js, modules and packages](https://www.developerway.com/posts/learning-by-fixing-node-js-modules-and-packages) — Learn how Node resolves modules and deals with packages by pretending to be a detective and debugging a mysterious build failure ([markdown](https://www.developerway.com/posts/learning-by-fixing-node-js-modules-and-packages.md))
- [webpack and yarn magic against duplicates in bundles](https://www.developerway.com/posts/webpack-and-yarn-magic-against-duplicates-in-bundles) — This page describes the theory and some technical details behind the webpack-deduplication-plugin plugin, which helped us reduce javascript size in Jira by ~10%. ([markdown](https://www.developerway.com/posts/webpack-and-yarn-magic-against-duplicates-in-bundles.md))
