#559 – May 31, 2026
Petar shares the 15 tools they keep returning and React is one of them
My frontend stack in 2026
9 minutes by Petar Ivanov
Petar shares the 15 tools they keep returning to in 2026 across nine categories. The choices cover everything from frameworks and styling to testing and error monitoring. Each tool earns its place by doing one thing well, composing cleanly with the others, and staying out of the way. The core idea is simple: the best stack is the one you stop noticing.
How toCancel useFetcher load on unmount in React router
4 minutes by Sergio Xalambrí
Fetchers in React Router v7 persist after a component unmounts, so an in-flight request can keep running even after the UI is gone. If your loader calls an upstream service, that becomes wasteful. The fix is two steps: forward request.signal to your upstream fetch inside the loader, then call fetcher.reset in a useEffect cleanup so the request cancels the moment the component unmounts.
Component architecture for React server components
23 minutes by Aurora Scharff
React has traditionally fetched data at the top of a route and passed it down through props. This creates tightly coupled components and uncontrolled loading states. React Server Components offer a better approach: each component fetches its own data on the server, keeping components self-contained and reusable. Suspense boundaries then let you design the loading experience deliberately, deciding what streams in when rather than leaving it to the network.
TanStack router and query
8 minutes by Dominik Dorfmeister
Dominik explains how TanStack Router works together with TanStack Query to improve data fetching and caching in React applications. He highlights the benefits of using route loaders with queries for faster navigation, prefetching, and better user experience. He also covers cache management, Suspense integration, and server-side rendering with TanStack Start, while recommending a query-first approach for scalable and efficient applications.
How a bloom filter can 404 your pages
5 minutes by Dario Djuric
Incremental Next.js migrations running both routers together rely on a bloom filter to decide whether a link needs a full page reload or a smooth client-side transition. This filter is probabilistic and can misfire, and when combined with a basePath setting, the resulting hard navigation doubles up the prefix in the URL, causing a 404. Setting experimental.clientRouterFilter to false in your config disables the filter and stops the problem, though you may then need to manage cross-router transitions manually.
And the most popular article from the last issue was: