React compiler at eighteen months

#554 – April 26, 2026

the Arc, the debates, and what's next

React compiler at eighteen months
9 minutes by Sascha Becker

Sascha looks back at 18 months of the React Compiler after React 19. He explains how it reduced manual memoization, improved performance, and changed common bugs like missing dependencies. He also discusses adoption in frameworks, migration steps, and remaining challenges with older libraries. Finally, he explores ongoing debates and possible future improvements in React tooling and compiler control.

Lessons Learned from Security Incidents in Mobile Apps
sponsored by Guardsquare

Join Security Researcher and Pentester, Jan Seredynski, on May 12 as he dissects real-world security incidents in banking, food delivery, and e-commerce. From face verification bypass to location spoofing, he'll break down the anatomy of a breach and what teams can do differently to address them.

Moving Railway's frontend off Next.js
5 minutes by Victor Ramirez

Railway switched its entire frontend from Next.js to Vite and TanStack Router. Builds that took over 10 minutes now finish in under two. The move made sense because the product is heavily client-side, and Next.js server-first features went mostly unused. The migration covered 200+ routes and shipped in two pull requests with no downtime.

use client in Next.js
7 minutes by Punit Sethi

Punit explains what the 'use client' directive does in Next.js. He shows that it still renders on the server but adds browser interactivity like hooks and events. He also discusses trade-offs such as larger JavaScript bundles, hydration cost, and delayed data loading and concludes that 'use client' should be used only where interactivity is needed.

Benchmarking bundle bloat patterns across 500 repos
15 minutes by Ko-Hsin Liang

Ko-Hsin benchmarks five common JavaScript import patterns across 500 repositories. Only two patterns—using lodash and moment.js—cause significant bundle bloat, increasing size by up to 17×. Other commonly criticized patterns, like barrel or namespace imports, show no real impact with modern bundlers. The findings suggest developers should focus on replacing heavy libraries rather than changing import styles.

Encoding dynamic data into URLs in Next.js
12 minutes by Aurora Scharff

Before Next.js 16, a single call to read cookies in a shared layout forced every nested page into dynamic rendering. The Precompute pattern worked around this by resolving request data in middleware and encoding it into the URL, so pages could be statically generated for each known variant. Newer cache components solve this for most cases, but the pattern still matters when content must vary by locale, currency, or feature flags. An upcoming feature called rootParams will remove the main pain point of passing the encoded value down through every component.

javascript

webdev

And the most popular article from the last issue was:

newsletters