#548 – March 15, 2026
keeping components and queries tied to a single feature makes the code cleaner and easier to maintain
Feature-based React architecture
3 minutes by Robin Wieruch
Database relationships directly shape how React components are structured. Using React Server Components, you can mirror database relations like posts and comments by splitting them into focused components, each handling its own data fetching. This avoids messy function names like getPostWithComments as your codebase grows. Keeping components and queries tied to a single feature makes the code cleaner and easier to maintain.
Prebuilt SwiftUI and Jetpack Compose components for your Expo app
sponsored by Clerk
Instead of browser redirects and hand-rolled sign-in screens, Clerk's Expo SDK 3.1 gives you native UI components out of the box. AuthView handles sign-in and sign-up. UserButton and UserProfileView manage the session. Native Google Sign-In included, no extra packages. Add the config plugin and ship.
How toAccess React router context with AsyncLocalStorage
4 minutes by Sergio Xalambrí
React Router's context object normally has to be passed through every function that needs it. AsyncLocalStorage fixes this by storing the context once per request, so any function can access it directly without needing it as a parameter. You set it up with a single middleware, then call helper functions like getDB or getUser from anywhere. The tradeoff is that dependencies become implicit, which can make isolated testing harder.
One component. Two APIs.
10 minutes by Sascha Becker
This is a short interactive quiz that helps you spot good and bad prop patterns in React code. It pulls examples from real codebases like MUI. The goal is to build an instinct for writing props that stay clean and easy to maintain over time.
How state updates work internally
9 minutes by Sankalpa Acharya
A deep dive into how React state updates really work, from hooks to batching. React state updates are asynchronous. Calling setState does not change the current variable. It queues an update and schedules a re-render, so logging state right after setting it shows the old value.
Real-time cache invalidation
6 minutes by Armand Sallé
Server-sent events beat WebSockets for cache invalidation because you only need one-way push. The pattern connects tRPC subscriptions over SSE to Redis Pub/Sub, so any server instance can notify all connected clients when data changes. Instead of pushing fresh data through the stream, it pushes small invalidation signals, letting TanStack Query handle the actual refetch. This keeps payloads tiny while preserving full type safety across the pipeline.
And the most popular article from the last issue was: