My optimistic UI looked perfect. Then someone clicked it five times fast.

#568 – August 02, 2026

optimistic UI can look perfect but quietly break when users click fast, sending overlapping requests that land out of order

My optimistic UI looked perfect. Then someone clicked it five times fast.
6 minutes by Shubhra Pokhariya

Optimistic UI can look perfect but quietly break when users click fast, sending overlapping requests that land out of order and leave the database out of sync with what the screen shows. The fix is a per-item pending lock that blocks a second click until the first request settles. On failure, React automatically reverts the optimistic value without extra code, unless the item never existed on the server at all. For cache updates, Next.js 16 offers three invalidation methods, each suited to different needs.

You can't Alt+click this newsletter, but you can Alt+click your React app
sponsored by Tolgee

Tolgee is an open-source i18n toolkit for React. The Alt/Option+click in the title is real, and simple enough that translators and product people use it themselves. Integrate it once, and translations stop being your problem. See the 15-second demo, and remember it for the day your app ships in another language.

Your useMemo probably isn't doing anything
9 minutes by Petar Ivanov

Unnecessary memoization in React adds complexity without real benefit. Re-renders are just function calls, not DOM updates, and are usually cheap. Three things trigger them: state changes, context changes, and parent re-renders. Before reaching for useMemo or React.memo, move state closer to where it's used or pass expensive components as children. Most performance problems disappear before you ever need a memoization hook.

Do we need state management libraries anymore?
24 minutes by Dan Neciu

Popular state management libraries like Redux, Zustand, and others all rely on a pub/sub core. Components subscribe to a store and re-render only when their selected slice changes. React 18 formalized this with useSyncExternalStore, which prevents tearing during concurrent rendering. Splitting state into the right buckets (server, URL, local, global) leaves very little that actually needs a dedicated library, and you can build that remaining piece yourself in around 50 lines.

Visual regression testing: The most important test you're not running
8 minutes by How to test frontend

Visual regression testing catches bugs that standard tests miss by taking screenshots and comparing them to a baseline image. Unlike unit or E2E tests, it checks how your app actually looks to users, not just how it behaves. It can catch broken layouts, CSS issues, and unintended changes across your whole app. Tools like Percy, Chromatic, and Vitest Browser Mode make it easy to add to your existing test setup.

Add URL normalization middleware in React router
3 minutes by Sergio Xalambrí

Small URL differences like /about vs /about/ or www vs non-www create duplicate pages. A simple middleware function in React Router can catch these at the edge, build the correct URL, and redirect before any page logic runs. Using HTTP 308 keeps the original request method intact, and handling both issues in one step avoids redirect chains. Register it at the root route so it applies to every page on your site.

And the most popular article from the last issue was:

newsletters