#112

RSC Explorer, React 19.2 Async Shift, Vercel AI SDK 6, Base UI v1, shadcn/create, Next.js notFound() Bug


Welcome back! 🎊 Hope you recharged over the holidays. Let’s jump into this week’s updates


Together with
Arcjet

Introducing RSC Explorer

Introducing RSC Explorer

Dan Abramov released RSC Explorer, a tool that lets you inspect how React Server Components work under the hood. See how JSX is streamed, how Suspense works, and how client and server code reference each other. It runs in the browser, uses the React RSC packages, and is fully open source

Intro to Performance of React Server Components

Nadia Makarevich breaks down how Client-Side Rendering, SSR, and React Server Components affect performance using clear metrics and simple examples.


⚡️ Sponsor

Arcjet

Arcjet - Painless security for developers

Implement bot protection and signup spam protection natively in code.

Make sure to stay up to date about new features, best articles and tools in the Next.js ecosystem by subscribing to the newsletter.

Once‑weekly email, best links, no fluff.

Join 6,000+ developers. 100% free.

📙 Articles, Tutorials

The worst thing to happen to React and Next.js: React2Shell

You might think hackers won't bother with your small portfolio site or demo project. That was the author's first reaction to the recent security warnings, until her own demo site compromised by the CVE-2025-55182 vulnerability started redirecting users to a crypto scam

How to Fix Next.js notFound() Returning 200 OK with App Router and Suspense

Explains how Next.js streaming commits response headers too early, resulting in a "200 OK" for non-existent pages. The post also outlines the SEO risks and offers five potential workarounds to mitigate the problem

Rate-limiting Server Actions in Next.js

I wrote a guide on how to implement IP-based rate-limiting for your Server Actions using next/headers since Actions don't give you the raw Request object

Coding Agents & Complexity Budgets

Lee Robinson shares the story of how he moved the Cursor website from a headless CMS back to plain Next.js code and Markdown. What he thought would take weeks was done in a weekend using coding agents, costing about $260 in tokens. The result was less complexity, faster builds, lower CDN costs, and easier changes through Git


🇫🇷 React Paris 2026

React Paris just announced its full speaker lineup, featuring top names like Una Kravets, Tanner Linsley, Mark Erikson, Daishi Kato, Kitze, and Tejas Kumar, focusing on cutting-edge React, AI, and web dev, with the event happening March 26-27, 2026


📦 Projects / Packages / Tools

Base UI v1

Base UI v1

The first stable release of Base UI is here with 35 headless components. Breaking change: the package moved from @base-ui-components/react to @base-ui/react. Version 1 also comes with several fixes and improvements

AI SDK 6

This release focuses on agents you can reuse across your app. Define an agent once and use it in APIs, background jobs, and UIs. It also adds safer tool execution, better debugging with new DevTools and MCP support

Better Auth Harmony

A better-auth plugin for email and phone normalization that also blocks temporary email domains

shadcn/create

A new tool that helps you build a custom version of shadcn/ui. You can choose the component library, colors, fonts, spacing, and style, and the tool generates code that matches your setup


⚡️ Sponsor

Immutable by Design: The Deep Tech Behind Tigris Bucket Forking

Immutable by Design: The Deep Tech Behind Tigris Bucket Forking

Think “instant DB clones” but for object storage. Sounds impossible — until you see the architecture. 👉 Peek under the hood.


🌈 Related

vercel.ts: Programmatic project configuration

You can now use a TypeScript file instead of the static vercel.json to configure your Vercel projects. This brings type safety, the ability to use environment variables, and dynamic logic directly into your configuration. It works for routing, cron jobs, and caching rules

React 19.2: The async shift is finally here

Jack Herrington writes about how React 19.2 rebuilds async handling from the ground up with use(), useTransition(), and View Transitions.

Engineering Our Engineering Blog: From Webflow to Payload

A behind‑the‑scenes look at how an engineering blog was migrated from Webflow to a self‑hosted setup using Next.js and Payload CMS. It explains why Webflow started to feel limiting, how Payload works as a code‑first CMS, and what was gained from the move

Logging sucks.

The article explains, in simple terms, why string-based logs and grep don’t work anymore, why high‑cardinality context actually matters, and how to log one rich, structured event per request instead of dozens of useless lines.


Have a link you want to share? Send me an email at erfan@nextjsweekly.com

All submissions are appreciated.

👋 See you next week!