#556 – May 10, 2026
and how to fix them
Common accessibility mistakes in React
10 minutes by Aurora Scharff
A look at the most common accessibility mistakes in React applications: missing semantics, broken focus management, unlabeled elements, and silent dynamic updates. Aurora covers what to fix, when to use component libraries, and how to audit your app.
Still writing tests manually? Meticulous AI is here.
sponsored by Meticulous
Most teams are forced to make the tradeoff between better coverage and more maintenance effort. But top engineering teams like Notion, Dropbox, Wealthsimple and LaunchDarkly have discovered a new testing paradigm. Built by ex-Palantir engineers, Meticulous creates and maintains E2E UI tests that covers every edge case of your web app without any developer effort - making it the only tool to improve both product quality and dev velocity.
Untangling dialogs in React router
13 minutes by David Adams
Dialogs seem simple until you run into when and where to data loading, handling errors and success feedback, and inevitably resorting to useEffect. David breaks down how to implement modal dialogs using React Router 7, covering patterns for nested routes, optimizing loader requests, showing feedback messages, programmatically closing dialogs, and preserving animations. All without a single useEffect.
Next.js link as a button
3 minutes by Kitty Giraudel
Kitty explains how to use a Next.js Link with a button component, such as Ant Design’s Button, without causing full page reloads. She compares different approaches: using router.push and using Next.js Link with legacyBehavior and passHref. She also shows a reusable wrapper component that cleanly combines Link and Button to enable proper client-side navigation while keeping correct HTML structure and styling.
Who owns the tree? RSC as a protocol, not an architecture
9 minutes by Tanner Linsley
React Server Components work as both an architecture and a protocol. Most frameworks only use the server-owned model, where the server controls the tree and the client fills in interactive parts. TanStack Start also supports a client-owned model, letting you fetch and drop server-rendered fragments into a client-controlled tree without restructuring your whole app. This makes RSC a flexible tool rather than a fixed architecture you must build around.
DOM manipulation that kills your 60fps
20 minutes by Ko-Hsin Liang
Ko-Hsin studies how certain JavaScript DOM manipulation patterns slow down web pages and break smooth 60fps performance. He benchmarks real browsers and analyzes 275 code repositories. The results show that mixing reads and writes, repeatedly using innerHTML in loops, and changing styles inefficiently can cause major slowdowns. Many real-world projects still use these patterns. The study recommends batching updates and using CSS classes for better performance.
And the most popular article from the last issue was: