<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Erfan Ebrahimnia</title>
    <description>The latest articles on DEV Community by Erfan Ebrahimnia (@erfanebrahimnia).</description>
    <link>https://dev.to/erfanebrahimnia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F291054%2F5d123de2-5373-4a06-847f-bfed543efb38.jpeg</url>
      <title>DEV Community: Erfan Ebrahimnia</title>
      <link>https://dev.to/erfanebrahimnia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erfanebrahimnia"/>
    <language>en</language>
    <item>
      <title>What Actually Triggers Suspense in React?</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Sat, 18 Jul 2026 13:55:19 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/what-actually-triggers-suspense-in-react-512</link>
      <guid>https://dev.to/erfanebrahimnia/what-actually-triggers-suspense-in-react-512</guid>
      <description>&lt;p&gt;&lt;a href="https://react.dev/reference/react/Suspense#what-activates-a-suspense-boundary" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FayyBHHYSgiifh67dxPr6Vi%3Fw%3D1000%26fit%3Dclip" alt="React Suspense Docs Update" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://react.dev/reference/react/Suspense#what-activates-a-suspense-boundary" rel="noopener noreferrer"&gt;React Suspense Docs Update&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Aurora Scharff has been working on the React Suspense docs, which now include a full list of what can activate a Suspense boundary, along with live demos for each case. She also shared a thread showing the &lt;a href="https://x.com/aurorascharff/status/2075222218099876260" rel="noopener noreferrer"&gt;demos on X&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Tigris Data
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://storagesdk.dev/?utm_source=nextjs-weekly&amp;amp;utm_medium=newsletter&amp;amp;utm_date=2026-07-18" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fi4HTaVdXbtJ6UNLuM9CNub%3Fw%3D1200%26fit%3Dclip" alt="Get the universal API for storage" width="2400" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://storagesdk.dev/?utm_source=nextjs-weekly&amp;amp;utm_medium=newsletter&amp;amp;utm_date=2026-07-18" rel="noopener noreferrer"&gt;Get the universal API for storage&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Snapshot = tag. Fork = branch. Announcing StorageSDK, bringing this Git-like model to storage, making it easier to build reproducible AI-agent workflows in TypeScript.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.logrocket.com/react-compiler-memoization-what-actually-broke/" rel="noopener noreferrer"&gt;I let React Compiler handle memoization: Here’s what actually broke&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;What happens when you let React Compiler take over memoization in a Next.js app? The article shows that you can remove many manual memo hooks, but not always all of them, especially when third-party tools depend on stable function references.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://3perf.com/blog/hydration-mismatch/" rel="noopener noreferrer"&gt;Hidden Cost of Hydration Mismatches&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you’ve ever ignored a hydration mismatch warning, this article is worth reading. It explains in simple terms how mismatches can force React to recreate DOM and make Largest Contentful Paint much worse than it should be&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=tFZjRdDnxzc" rel="noopener noreferrer"&gt;► Async React with Vercel's Aurora Scharff&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Aurora Scharff returns to PodRocket to discuss Async React and the React 19 features built around it. She looks at why these patterns matter for real users, how Next.js is improving caching with cache components and the App Router, and why fast-feeling apps matter as much as stable layouts&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/QuadDepo/env.style" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F6WfXM7iaa8TfJ7ojssNXY5%3Fw%3D1000%26fit%3Dclip" alt="env.style" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/QuadDepo/env.style" rel="noopener noreferrer"&gt;env.style&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you often work across different Next.js environments, this package makes them easier to recognize at a glance. You can assign colors, add custom icons, and adjust settings so important colors stay untouched&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/cloudflare/vinext" rel="noopener noreferrer"&gt;Vinext 1.0 (Beta)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;vinext, the project that lets you run Next.js apps on Vite, has reached its first beta release. This update adds a new &lt;code&gt;create-vinext-app&lt;/code&gt; starter, improves Cloudflare support with cache warming and prerendered route caching, and now requires Vite 8. There are also several fixes for App Router behavior, config handling, and build performance&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ui.shadcn.com/docs/changelog/2026-07-base-ui-default" rel="noopener noreferrer"&gt;shadcn/ui July 2026 - Base UI as the Default&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;New shadcn/ui projects now use Base UI by default, while Radix remains fully supported. The change comes after strong adoption, with Base UI now stable, widely used, and the default choice in newer shadcn/create projects&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ui.shadcn.com/typeset" rel="noopener noreferrer"&gt;shadcn/typeset&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A CSS tool for making markdown look good with less work. Instead of styling each element one by one, it styles everything inside a &lt;code&gt;typeset&lt;/code&gt; wrapper and lets you adjust the look with three simple variables&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Expo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fgx5oJeGngJTXBMDRQ2H6qr%3Fw%3D1000%26fit%3Dclip" alt="How is your app performing in production?" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;How is your app performing in production?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most teams learn about performance regressions from user complaints. Observe surfaces them within hours of the release that caused it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://cant-maintain.saschb2b.com/" rel="noopener noreferrer"&gt;Can't Maintain: A React Component API Game&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A collection of learning apps where you compare two options and pick the better one. It covers topics like React, TypeScript, SEO for Next.js, testing, Git, and more, with each app adding its own tools like playgrounds, inspectors, and visual viewer&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://performance.dev/chatgpt" rel="noopener noreferrer"&gt;Reverse Engineering ChatGPT Web: How OpenAI Built for a Billion Users&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Yes, it's partly a story about moving away from Next.js, but it's still a very interesting read. It breaks down how ChatGPT's web app is built, from fast server rendering and streaming responses to feature flags, bot checks, and a strong focus on getting users typing as quickly as possible&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/vercel-and-shopify-are-rebuilding-hydrogen" rel="noopener noreferrer"&gt;Vercel and Shopify are rebuilding Hydrogen&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Hydrogen is Shopify's framework for creating headless storefronts. Vercel and Shopify have announced a full rebuild to make it more open and easier to use across different frameworks, including Next.js&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://orizens.com/blog/2026-06-18-zustand/" rel="noopener noreferrer"&gt;When React Hooks Stop Scaling: Moving Complex State to Zustand&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is a nice example of an architecture problem showing up as a bug. Oren Farhi explains how a speech recognition hook worked well at first, but became hard to reason about once transcript updates needed to come from outside the component tree&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Better Auth Joins Vercel</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 10 Jul 2026 10:20:54 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/better-auth-joins-vercel-5a97</link>
      <guid>https://dev.to/erfanebrahimnia/better-auth-joins-vercel-5a97</guid>
      <description>&lt;p&gt;📣 A quick note before we get started: I'm moving this newsletter from Kit to a new platform soon. You don't need to do anything, if you want to keep receiving Next.js Weekly. During the switch, I'll also tidy up the mailing list. Anyone who hasn't interacted with the newsletter in the last 3 months will be unsubscribed automatically&lt;/p&gt;




&lt;p&gt;&lt;a href="https://better-auth.com/blog/better-auth-joins-vercel" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FuGdrsC3yL5SwK5GFW72sH2%3Fw%3D1000%26fit%3Dclip" alt="Better Auth is joining Vercel" width="2400" height="1240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://better-auth.com/blog/better-auth-joins-vercel" rel="noopener noreferrer"&gt;Better Auth is joining Vercel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Better Auth, the open source auth framework, is joining Vercel. The goal is to give the team more support to keep building auth in the open while staying framework-agnostic. The post also shares the story behind Better Auth, from solving multi-tenant auth problems in Next.js to later taking over Auth.js / NextAuth.js. Looking ahead, the team wants to invest more in auth for AI agents, where apps need secure and revocable access on behalf of users&lt;/p&gt;

&lt;h3&gt;
  
  
  From Vercel Ship:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://vercel.com/blog/dockerfile-on-vercel" rel="noopener noreferrer"&gt;Run any Dockerfile on Vercel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/blog/next-16-3-turbopack" rel="noopener noreferrer"&gt;Turbopack: What's New in Next.js 16.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vercel.com/changelog/introducing-vcr-vercel-container-registry" rel="noopener noreferrer"&gt;Introducing VCR: Vercel Container Registry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vercel.com/changelog/vercel-sandbox-now-supports-fuse-based-filesystems" rel="noopener noreferrer"&gt;Vercel Sandbox now supports FUSE-based filesystems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vercel.com/changelog/vercel-functions-can-now-be-up-to-5-gb-in-package-size-7yAwSyCig0IQDXUIDistvS/eadf06d6c3" rel="noopener noreferrer"&gt;Vercel Functions can now be up to 5GB in package size&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Blazity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FnnN1Vx5pFxWkoSDsVVHBeY%3Fw%3D1000%26fit%3Dclip" alt="Blazity" width="2400" height="1350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;Next.js migration toolkit that eliminates guesswork and protects production and stability&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most Next.js migrations from Pages Router to App Router follow the same pattern: a developer reads the docs, starts converting files, breaks something in production, then spends weeks firefighting.&lt;/p&gt;

&lt;p&gt;The real problem with migrations are the edge cases nobody warns you about, and the lack of systematic approach. We’ve done enough migrations to confidently say - we’ve been there and done that.&lt;/p&gt;

&lt;p&gt;So we built &lt;code&gt;Skills.md&lt;/code&gt; — an agent-oriented migration toolkit that gives AI coding agents (and developers) a structured, production-safe path from Pages Router to App Router.&lt;/p&gt;

&lt;p&gt;Instead of guesswork and broken deploys you get a repeatable process built from real migration experience.&lt;br&gt;
It's open source and built for Skills.sh.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/hydration-and-rendering-strategies" rel="noopener noreferrer"&gt;Different hydration and rendering strategies&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Covers CSR, SSR, streaming, islands, React Server Components, and more, with the pros and cons of each&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/discussions/95514" rel="noopener noreferrer"&gt;RFC: WebSocket Upgrades in Route Handlers&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new draft proposal from the Next.js team wants to bring built-in WebSocket support to App Router Route Handlers&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reactperf.dev/" rel="noopener noreferrer"&gt;reactperf&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;40 steps across 11 sections covering the main parts of React performance. This guide explains common slowdowns like extra re-renders, effect problems, large lists, bundle size issues, and layout work, all in a simple order that builds from one topic to the next&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://vercel.com/blog/ai-sdk-7" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fd2kEGbS91jXAJMSnj9mNwG%3Fw%3D1000%26fit%3Dclip" alt="AI SDK 7" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/ai-sdk-7" rel="noopener noreferrer"&gt;AI SDK 7&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;New features include better reasoning controls, tool and runtime context, file and skill uploads, MCP Apps, a terminal UI, tool approvals, durable workflows, and timeout support&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/facebook/astryx" rel="noopener noreferrer"&gt;Astryx&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Meta has open sourced the design system. It includes 150+ accessible React components, brand-level theming, dark mode, ready-to-ship templates, and a CLI, all without forcing you into a styling setup. It uses StyleX under the hood&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://saschb2b.com/blog/react-stinky" rel="noopener noreferrer"&gt;react-stinky&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If your React components are getting messy, this tool aims to help. It checks for common code smells across a whole component or file, including bad state flow, weak accessibility, hook mistakes, and TypeScript issues&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/unlayer/elements" rel="noopener noreferrer"&gt;Unlayer Elements&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new open source React component library that lets teams create transactional emails, landing pages, and documents from the same component model&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Expo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fgx5oJeGngJTXBMDRQ2H6qr%3Fw%3D1000%26fit%3Dclip" alt="How is your app performing in production?" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;How is your app performing in production?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most teams learn about performance regressions from user complaints. Observe surfaces them within hours of the release that caused it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://longho.dev/posts/react-compiler-is-a-retrofit/" rel="noopener noreferrer"&gt;React Compiler Is A Retrofit&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article argues that React Compiler is useful, but it is still a workaround for React’s long-standing identity and memoization issues&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.callstack.com/blog/writing-custom-renderers-for-react" rel="noopener noreferrer"&gt;Writing Custom Renderers for React&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;With React Test Renderer now deprecated, Maciej Jastrzębski explains how and why he built a new test renderer for React Native Testing Library. It’s a useful look at what React renderers actually do, how the reconciler works, and how React turns components into platform-specific UI&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.vlt.io/blog/packument-size-limits" rel="noopener noreferrer"&gt;Why Drizzle ORM couldn't publish new releases on NPM for a month&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Drizzle ORM recently hit a little-known npm limit that blocks publishing once a package’s full metadata file grows beyond 100 MB. The article explains why this happens, how older versions add up over time, and why publishing lots of dev or snapshot builds is usually a bad idea&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Next.js 16.3, WebSocket on Vercel, cnfast, Instant Navigations, React Libraries for 2026, What RSCs Can Do</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Thu, 25 Jun 2026 20:59:57 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/nextjs-163-websocket-on-vercel-cnfast-instant-navigations-react-libraries-for-2026-what-rscs-43c4</link>
      <guid>https://dev.to/erfanebrahimnia/nextjs-163-websocket-on-vercel-cnfast-instant-navigations-react-libraries-for-2026-what-rscs-43c4</guid>
      <description>&lt;p&gt;&lt;a href="https://nextjs.org/blog/next-16-3-instant-navigations" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FqxCtmBQB63GhpwwYRxrz5r%3Fw%3D1000%26fit%3Dclip" alt="Next.js 16.3: Instant Navigations" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/blog/next-16-3-instant-navigations" rel="noopener noreferrer"&gt;Next.js 16.3: Instant Navigations&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js 16.3 preview introduces "Instant Navigations", a new way to make app navigations feel much faster. There are also new dev tools like Instant Insights, a Navigation Inspector, and a Playwright helper for testing instant page changes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://gitnation.com/contents/what-rscs-can-do-in-nextjs-today" rel="noopener noreferrer"&gt;► What RSCs Can Do in Next.js Today&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Aurora Scharff shows how Next.js helps you build app-like experiences without needing to fully rely on the usual SPA model. It highlights how React Server Components, streaming, caching, fresh data, and coordinated updates can work together to make apps feel fast while keeping the component model simple as projects grow&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Arcjet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://launch.arcjet.com/4qRHeOo" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FeJdVE2PMX1788qFLAksqci%3Fw%3D1000%26fit%3Dclip" alt="AI compliance controls" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://launch.arcjet.com/4qRHeOo" rel="noopener noreferrer"&gt;AI compliance controls&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Protect your AI applications from prompt injection, PII leaks, and unauthorized tool calls.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=cSDKkD_6kCo" rel="noopener noreferrer"&gt;► Next.js 16.3 got good (if you care)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A positive look at where Next.js is heading, based on demos shown at Next.js Night in Amsterdam and London. The big theme is better, more declarative caching, plus new “instant insights” in dev mode that help spot slow parts of your app and suggest fixes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/subito/how-we-cut-slow-responses-by-80-migrating-to-nextjs-app-router-37da"&gt;How We Cut Slow Responses by 80% Migrating to Next.js App Router&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The team at Subito shares their journey migrating from Pages Router to App Router on a high-traffic site. The trickiest part wasn't Next.js itself, but getting HTML streaming to work through their entire stack (Nginx, CDN). They rolled out category by category, monitored SEO closely, and saw slow responses drop by roughly 80%&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.robinwieruch.de/react-libraries/" rel="noopener noreferrer"&gt;React Libraries for 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robin Wieruch updated his popular article on the essential libraries and tools for building React applications in 2026. It covers everything from project setup and state management to databases, hosting, and beyond&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/component-communication-patterns-in-react" rel="noopener noreferrer"&gt;Component Communication Patterns in React Applications&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;How should two React components share data? It depends on their distance and what's being shared. This guide covers every pattern from props and callbacks to Zustand, TanStack Query, URL state, and pub-sub, with clear advice on when to reach for each&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/aidenybai/cnfast" rel="noopener noreferrer"&gt;cnfast&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you use tailwind-merge with shadcn/ui, this one's worth a look. cnfast is a drop-in replacement that produces byte-identical output but runs 3.8x faster on average (up to 7x in component-heavy code)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/ixartz/SaaS-Boilerplate" rel="noopener noreferrer"&gt;Next.js SaaS Boilerplate&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This starter kit helps you quickly build SaaS apps with built-in auth, teams, roles, database tools, testing, and deployment support. Recently updated for Next.js 16&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/eve-chat-template" rel="noopener noreferrer"&gt;eve Chat Template&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A persisted Next.js chat template for eve (Vercel's latest framework for building agents), built with shadcn/ui, Tailwind CSS, Streamdown, Better Auth, Drizzle, Neon, and Upstash Redis&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://stylexjs.com/docs/api/javascript/atoms" rel="noopener noreferrer"&gt;stylex/atoms&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Added in the latest StyleX release, &lt;code&gt;@stylexjs/atoms&lt;/code&gt; makes it easier to write inline atomic styles, similar to Tailwind. It supports both static atoms like &lt;code&gt;x.display.flex&lt;/code&gt; and dynamic ones like &lt;code&gt;x.color(color)&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Sponsoring the newsletter
&lt;/h2&gt;

&lt;p&gt;A quick note from me: if you’re building something for the Next.js community, consider &lt;a href="https://nextjsweekly.com/sponsors" rel="noopener noreferrer"&gt;sponsoring this newsletter&lt;/a&gt; and putting it in front of 7,000+ Next.js developers.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/websocket-support-is-now-in-public-beta" rel="noopener noreferrer"&gt;Vercel: WebSocket support is now in Public Beta&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel Functions can now handle WebSocket connections, making it easier to build realtime features like chat, AI streaming, and collaborative apps on Vercel. It works with standard Node.js WebSocket libraries like &lt;code&gt;ws&lt;/code&gt;, and higher-level tools like Socket.IO are supported too. Pricing follows normal Function usage, and with Active CPU pricing, idle connection time is not billed.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://thetshaped.dev/p/you-are-using-react-compound-components-wrong-type-safe-typescript" rel="noopener noreferrer"&gt;You're Using React Compound Components Wrong&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Compound components are a group of components that work together and share state. This post shows why they work best for layout with mostly static, different kinds of children like tabs or cards, and why data-driven lists like &lt;code&gt;&amp;lt;Select&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;Option&amp;gt;&lt;/code&gt; are often the wrong use for them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/94573" rel="noopener noreferrer"&gt;Turbopack: add experimental React compiler support&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;We recently mentioned the &lt;a href="https://github.com/react/react/pull/36173" rel="noopener noreferrer"&gt;Rust port of the React Compiler&lt;/a&gt;, and things have moved fast since then. The Pull Request has now been merged, and support was quickly added to Turbopack too. That means you can now try it in Next.js by enabling &lt;code&gt;experimental.rustReactCompiler&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.skovhus.dev/blog/moving-linear-from-styled-components-to-stylex" rel="noopener noreferrer"&gt;Moving Linear from styled‑components to StyleX&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Linear shares how they're moving from runtime CSS-in-JS to StyleX for build-time style extraction and stronger encapsulation&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Security in React, React Compiler Rust Port, Server Functions in parallel, Auth book, Vercel Sandbox Docker Support</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 05 Jun 2026 11:22:16 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/security-in-react-react-compiler-rust-port-server-functions-in-parallel-auth-book-vercel-2d0d</link>
      <guid>https://dev.to/erfanebrahimnia/security-in-react-react-compiler-rust-port-server-functions-in-parallel-auth-book-vercel-2d0d</guid>
      <description>&lt;p&gt;&lt;a href="https://certificates.dev/blog/security-in-react-applications" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FicXxiMpxeR5MXjnCfdXGoh%3Fw%3D1000%26fit%3Dclip" alt="Security in React Applications" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://certificates.dev/blog/security-in-react-applications" rel="noopener noreferrer"&gt;Security in React Applications&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A thorough guide to securing React apps beyond the built-in protections. Covers how to prevent XSS, sanitize HTML with DOMPurify, store auth tokens safely, validate server-side inputs using Zod with Server Functions, and set up Content Security Policy with nonces for inline scripts&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/facebook/react/pull/36173" rel="noopener noreferrer"&gt;PR: Port React Compiler to Rust&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The React team shared an early Rust port of React Compiler not long ago, and it’s already come a long way. It now works across nearly all of Meta’s codebase with the same output as the TS version, while also running faster&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Tigris Data
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://storagesdk.dev/?utm_source=nextjs-weekly&amp;amp;utm_medium=newsletter&amp;amp;utm_date=2026-06-05" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fi4HTaVdXbtJ6UNLuM9CNub%3Fw%3D1200%26fit%3Dclip" alt="Get the universal API for storage" width="2400" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://storagesdk.dev/?utm_source=nextjs-weekly&amp;amp;utm_medium=newsletter&amp;amp;utm_date=2026-06-05" rel="noopener noreferrer"&gt;Get the universal API for storage&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Snapshot = tag. Fork = branch. Announcing StorageSDK, bringing this Git-like model to storage, making it easier to build reproducible AI-agent workflows in TypeScript.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/94277/changes" rel="noopener noreferrer"&gt;PR: Run Server Functions in parallel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Next.js team is working on letting Server Functions run in parallel, hidden behind a &lt;code&gt;parallelServerFunctions&lt;/code&gt; feature flag. The PR is still a draft, but let's hope this lands soon&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=WsAmM-sx9kA" rel="noopener noreferrer"&gt;► A Guide to React Compiler Rendering&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Explains how React rendering actually works and what the new React Compiler is doing under the hood to make your app faster&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.sethi.io/blog/react-performance-from-sluggish-to-lightning" rel="noopener noreferrer"&gt;React Performance: From Sluggish to Lightning&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A simple visual guide to what actually makes React apps slow today. Covers state colocation, the React Compiler, &lt;code&gt;useTransition&lt;/code&gt;, lazy loading, and a few easy-to-miss performance bugs&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/aidenybai/status/2062202659143115216" rel="noopener noreferrer"&gt;𝕏 The problem with React's useEffect&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A quick explainer on how useEffect can cause infinite re-render loops and crash your app. The video also teases React Doctor, a tool that automatically detects these kinds of issues and helps you fix them&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://auth.pilcrowonpaper.com/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FfzRyNdhgz6uA2SToWsenLw%3Fw%3D1000%26fit%3Dclip" alt="Auth book" width="1271" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://auth.pilcrowonpaper.com/" rel="noopener noreferrer"&gt;Auth book&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Pilcrow, the creator of Lucia Auth, wrote a free book covering everything you need to know about implementing authentication in web applications&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/run-docker-containers-inside-vercel-sandbox" rel="noopener noreferrer"&gt;Run Docker containers inside Vercel Sandbox&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;You can now install and run Docker containers inside Vercel Sandbox. Useful for spinning up services like Redis or Postgres for testing, validating images, or previewing containerized apps&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ui.shadcn.com/docs/changelog" rel="noopener noreferrer"&gt;shadcn/ui June 2026 - GitHub Registries&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;shadcn now lets you turn any public GitHub repository into a registry. Just add a &lt;code&gt;registry.json&lt;/code&gt; file to the root of your repo, define your items, and anyone can install them with the shadcn CLI using &lt;code&gt;shadcn add &amp;lt;username&amp;gt;/&amp;lt;repo&amp;gt;/&amp;lt;item&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://legendapp.com/open-source/list/v3/overview/" rel="noopener noreferrer"&gt;Legend List 3.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A drop-in replacement for FlatList/FlashList that now works on the web too. It handles dynamic sizes automatically, supports chat and AI chat apps out of the box, and uses less CPU and memory than alternatives&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Expo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fgx5oJeGngJTXBMDRQ2H6qr%3Fw%3D1000%26fit%3Dclip" alt="How is your app performing in production?" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://try.expo.dev/observe-nextjs" rel="noopener noreferrer"&gt;How is your app performing in production?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most teams learn about performance regressions from user complaints. Observe surfaces them within hours of the release that caused it.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://stackinsight.dev/blog/dom-manipulation-empirical-study/" rel="noopener noreferrer"&gt;DOM Manipulation That Kills Your 60fps&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This study tested common DOM anti-patterns in Chromium and scanned 275 repos to see how often they appear. The clearest result: &lt;code&gt;innerHTML +=&lt;/code&gt; in a loop is extremely slow and can freeze the UI, while forced layout reads after writes also cause noticeable slowdowns&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://thetshaped.dev/p/my-frontend-stack-in-2026-react-nextjs-pnpm-vite-ts-tailwind-storybook-tanstack-zustand-zod-oxlint-oxfmt-msw-vitest-playright-sentry" rel="noopener noreferrer"&gt;My Frontend Stack In 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A developer walks through the 15 tools they actually use in production. Next.js for content sites, Vite 8 for SPAs, Tailwind + shadcn/ui for styling, TanStack Query for data fetching, Zustand for state, Zod for validation, and more&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://shadcnstudio.com/blog/migrate-from-radix-ui-to-base-ui" rel="noopener noreferrer"&gt;Migrating from Radix UI to Base UI: Step-by-Step Guide&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Covers why Base UI matters, key API differences like the shift from &lt;code&gt;asChild&lt;/code&gt; to the &lt;code&gt;render&lt;/code&gt; prop, component-specific changes for Accordion, Select, Tooltip and more, plus common pitfalls to watch out for&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.raycast.com/blog/a-technical-deep-dive-into-the-new-raycast" rel="noopener noreferrer"&gt;A Technical Deep Dive Into the New Raycast&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Raycast rebuilt their app from scratch to run on both macOS and Windows. They went with a hybrid approach: React and TypeScript for UI in system WebViews, native shells in Swift and C#, Node.js for backend logic, and Rust for performance-critical parts like file indexing&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>RSC Component Architecture, Next.js Dev MCP, Interactive Apps Guide, React Doctor, Bklit UI, Chat SDK Community Agent, Prefetch App Shells</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 29 May 2026 06:12:34 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/rsc-component-architecture-nextjs-dev-mcp-interactive-apps-guide-react-doctor-bklit-ui-chat-g6m</link>
      <guid>https://dev.to/erfanebrahimnia/rsc-component-architecture-nextjs-dev-mcp-interactive-apps-guide-react-doctor-bklit-ui-chat-g6m</guid>
      <description>&lt;p&gt;&lt;a href="https://aurorascharff.no/posts/component-architecture-for-react-server-components/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FeYvac35NcYoMQXQspNr7xJ%3Fw%3D1000%26fit%3Dclip" alt="Component Architecture for React Server Components" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aurorascharff.no/posts/component-architecture-for-react-server-components/" rel="noopener noreferrer"&gt;Component Architecture for React Server Components&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Traces the evolution from &lt;code&gt;useEffect&lt;/code&gt; to React Query to route-level loaders to RSCs, using a social feed app as an example. The main takeaway: let each component fetch its own data on the server and use Suspense boundaries to design the loading experience instead of fetching all data at the top of a route and drilling it down through props&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=OODK3KGUjDA" rel="noopener noreferrer"&gt;► I Tested Next.js Dev MCP (So You Don't Have To)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The video looks at Next.js DevTools MCP, a tool that helps AI editors understand your Next.js app better. It can read the latest docs, see routes and errors, and give more accurate help when building with newer Next.js features&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Blazity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FnnN1Vx5pFxWkoSDsVVHBeY%3Fw%3D1000%26fit%3Dclip" alt="Blazity" width="2400" height="1350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;Next.js migration toolkit that eliminates guesswork and protects production and stability&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most Next.js migrations from Pages Router to App Router follow the same pattern: a developer reads the docs, starts converting files, breaks something in production, then spends weeks firefighting.&lt;/p&gt;

&lt;p&gt;The real problem with migrations are the edge cases nobody warns you about, and the lack of systematic approach. We’ve done enough migrations to confidently say - we’ve been there and done that.&lt;/p&gt;

&lt;p&gt;So we built &lt;code&gt;Skills.md&lt;/code&gt; — an agent-oriented migration toolkit that gives AI coding agents (and developers) a structured, production-safe path from Pages Router to App Router.&lt;/p&gt;

&lt;p&gt;Instead of guesswork and broken deploys you get a repeatable process built from real migration experience.&lt;br&gt;
It's open source and built for Skills.sh.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/94020/changes" rel="noopener noreferrer"&gt;Docs: add Interactive Apps guide&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new draft PR to the Next.js docs walks you through building snappy, responsive UIs. It covers eight patterns including optimistic updates, streaming with Suspense, drag-and-drop, form handling, and caching for instant navigation&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/93999" rel="noopener noreferrer"&gt;PR: Prefetch App Shells on the client&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new experimental feature that ensures every navigation in a Next.js app shows something instantly even if a per-link prefetch hasn't finished yet&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://saschb2b.com/blog/flight-protocol-dos" rel="noopener noreferrer"&gt;The Flight Protocol Made Your DoS My Problem&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post looks at a React Flight bug that could let a single request slow down or freeze a Node server. It also shows how Server Components quietly turned the component tree into a network protocol, while most teams never updated their threat model to match&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://javascript.plainenglish.io/migrating-express-to-next-js-using-ai-agents-antigravity-f48b4c206a8e" rel="noopener noreferrer"&gt;Migrating from Express to Next.js with AI agents&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Shows how to turn a legacy Express app into a modern Next.js app using Google Antigravity and AI agents. Covers patterns, testing, and how agents fix their own mistakes&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/millionco/react-doctor" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FaYsfUE5uboM4bmxtN4Ku8s%3Fw%3D1000%26fit%3Dclip" alt="React Doctor" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/millionco/react-doctor" rel="noopener noreferrer"&gt;React Doctor&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;React Doctor deterministically scans your codebase and finds issues across state &amp;amp; effects, performance, architecture, security, and accessibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/SukkaW/sekisho" rel="noopener noreferrer"&gt;sekisho&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A library that uses React's error boundary mechanism to handle login redirects and access control in a clean, declarative way. Call &lt;code&gt;needLogin()&lt;/code&gt; during render to trigger a redirect, or &lt;code&gt;accessRestricted()&lt;/code&gt; to hide UI from unauthorized users. It's like &lt;code&gt;&amp;lt;Suspense&amp;gt;&lt;/code&gt; but for auth&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/bklit/bklit-ui" rel="noopener noreferrer"&gt;Bklit UI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A collection of Open Source charts and utility components that you can customize and extend&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/templates/next.js/chat-sdk-community-agent" rel="noopener noreferrer"&gt;Chat SDK Community Agent&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Open source AI-powered Slack community management bot with a built-in Next.js admin panel. Uses Chat SDK, AI SDK, and Vercel Workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Bluebag
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F8tZgn2q3GU7LgBgzk1mTzA%3Fw%3D1000%26fit%3Dclip" alt="Add Skills to your AI-SDK Agent in minutes" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;Add Skills to your AI-SDK Agent in minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Execute Skills in runtime VMs without building infrastructure. Run complex scripts, read Skills on-demand, install dependencies, mint download links, and build predictable, specialised agents in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://performance.dev/how-is-linear-so-fast-a-technical-breakdown" rel="noopener noreferrer"&gt;How's Linear so fast? A technical breakdown&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A deep dive into the engineering and design decisions that make Linear feel almost instant&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.isquaredsoftware.com/2026/05/ai-thoughts-part-2-agent-workflow-tools/" rel="noopener noreferrer"&gt;My Thoughts on AI: Agent Setup, Workflow, and Tools&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Redux maintainer Mark Erikson shares a detailed look at how he actually uses AI for day-to-day development&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.robinwieruch.de/react-testing-library/" rel="noopener noreferrer"&gt;React Testing Library Tutorial (with Jest &amp;amp; Vitest)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robin Wieruch updated his guide to React Testing Library, covering how to test components the way users interact with them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.prisma.io/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app" rel="noopener noreferrer"&gt;Prisma Next Early Access: Write Your Contract, Prompt Your Agent, Ship Your App&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Prisma Next is a new ORM that lets you define your database in one contract file, while it handles migrations, type-safe queries, and errors for you. It is also built to work closely with AI agents, so they can help you build apps faster. Early Access is open now for Postgres and MongoDB, but it is not ready for production yet&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Files SDK, React2Shell Story, Next.js Security Release, Fate, Tailwind CSS v4.3, RSC Server Functions</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 22 May 2026 12:59:51 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/files-sdk-react2shell-story-nextjs-security-release-fate-tailwind-css-v43-rsc-server-e0m</link>
      <guid>https://dev.to/erfanebrahimnia/files-sdk-react2shell-story-nextjs-security-release-fate-tailwind-css-v43-rsc-server-e0m</guid>
      <description>&lt;p&gt;&lt;a href="https://vercel.com/changelog/next-js-may-2026-security-release" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F2jY7g4TTUFvwdS64iNe2ao%3Fw%3D1000%26fit%3Dclip" alt="Next.js May 2026 security release" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/next-js-may-2026-security-release" rel="noopener noreferrer"&gt;Next.js May 2026 security release&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A big security update for Next.js fixing 13 issues across auth bypass, denial of service, SSRF, cache poisoning, and XSS. One of the fixes also covers an upstream React Server Components bug. If you use affected Next.js or &lt;code&gt;react-server-dom-*&lt;/code&gt; versions, update right away, as patching is the only full fix. Next.js 15.5.18 and 16.2.6 include the fixes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/90878/changes" rel="noopener noreferrer"&gt;Docs Update: Data Security &amp;amp; Mutations&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Next.js team extended the guides for implementing data security and mutations in your apps, with a big focus on Server Actions and Server Functions. The docs now make it clearer that these functions can be called by direct POST requests, so you should always check authentication and authorization inside each one, not just at the page level&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/docs/app/guides/data-security" rel="noopener noreferrer"&gt;How to think about data security in Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/docs/app/getting-started/mutating-data" rel="noopener noreferrer"&gt;Mutating Data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FmTJ6xGQeSSSMPcNj69f2yH%3Fw%3D1000%26fit%3Dclip" alt="Your AI shouldn't grade its own homework" width="2400" height="1450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;Your AI shouldn't grade its own homework&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Claude Code writes beautiful code. So does Codex. But here's the thing, they also think they write beautiful code. And when you ask an AI to review code it just wrote, you get the intellectual equivalent of a student grading their own exam. Shockingly, they always pass.&lt;/p&gt;

&lt;p&gt;CodeRabbit CLI plugs into Claude Code and Codex as an external reviewer, different AI Agent, different architecture, 40+ static analyzers and zero emotional attachment to the code it's looking at. The agent writes, CodeRabbit reviews, and the agent fixes. Loop until clean.&lt;/p&gt;

&lt;p&gt;You show up when there's actually something worth approving.&lt;/p&gt;

&lt;p&gt;One command. Autonomous generate-review-iterate cycles. The AI still does the work. It just doesn't get to decide if the work is good anymore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;Free tier available. Try CodeRabbit's CLI.&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://lachlan.nz/blog/the-react2shell-story/" rel="noopener noreferrer"&gt;The React2Shell Story&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A security researcher shares how a close look at React Flight led to finding a critical remote code execution bug in React, later fixed as CVE-2025-55182. It’s a great read if you want to learn how React Server Components and Server Functions work under the hood&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kittygiraudel.com/2026/05/02/nextjs-link-as-a-button/" rel="noopener noreferrer"&gt;Next.js Link as a Button&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A simple guide to turning a library button into a real Next.js link. It keeps client-side navigation and renders a proper &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://longho.dev/posts/rsc-server-functions-are-not-an-api-boundary/" rel="noopener noreferrer"&gt;RSC Server Functions Are Not An API Boundary&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An interesting post on the hidden API-like risks of server functions. The main point: if something needs to stay stable across deploys, it may need a real API instead.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/haydenbleasel/files-sdk" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FrZL67VGZRkqJNEuoPcQokt%3Fw%3D1000%26fit%3Dclip" alt="Files SDK" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/haydenbleasel/files-sdk" rel="noopener noreferrer"&gt;Files SDK&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new SDK that gives you a single way to work with object and blob storage across 18 providers, including S3, R2, Vercel Blob, and Google Drive. You can upload, download, list, delete, copy, and more without changing your app code when you switch providers&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/nkzw-tech/fate" rel="noopener noreferrer"&gt;fate&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This new data-fetching library takes some of Relay’s best ideas, like view composition and strict data selection, and brings them to regular TypeScript apps. It also supports Suspense, optimistic updates, and live views&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tailwindcss.com/blog/tailwindcss-v4-3" rel="noopener noreferrer"&gt;Tailwind CSS v4.3&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Highlights include new scrollbar utilities, four new color palettes, and a first-party webpack plugin with a big speed boost for Next.js apps&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://base-ui.com/react/overview/releases/v1-5-0" rel="noopener noreferrer"&gt;Base UI v1.5.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This release is mainly about speed and bug fixes. Popups now mount and unmount much faster, and many components got fixes for forms, focus, RTL, and browser behavior&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Bluebag
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F8tZgn2q3GU7LgBgzk1mTzA%3Fw%3D1000%26fit%3Dclip" alt="Add Skills to your AI-SDK Agent in minutes" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;Add Skills to your AI-SDK Agent in minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Execute Skills in runtime VMs without building infrastructure. Run complex scripts, read Skills on-demand, install dependencies, mint download links, and build predictable, specialised agents in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.robinwieruch.de/react-folder-structure/" rel="noopener noreferrer"&gt;React Folder Structure Best Practices&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robin Wieruch has updated his long-running guide for 2026 with a step-by-step look at how to organize React apps as they grow&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://certificates.dev/blog/accessibility-in-react-common-mistakes-and-how-to-fix-them" rel="noopener noreferrer"&gt;Accessibility in React: Common Mistakes and How to Fix Them&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Covers common React accessibility mistakes such as bad semantics, broken focus, and hidden updates, with clear tips on how to improve them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://saschb2b.com/blog/llm-default-react-stack" rel="noopener noreferrer"&gt;Five Models, One React Stack: Why Every LLM Builds the Same App&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An interesting post on how AI models have started to favor the same tools for building React apps&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/" rel="noopener noreferrer"&gt;From latency to instant: Modernizing GitHub Issues navigation performance&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A behind-the-scenes look at how GitHub sped up Issues navigation through a combination of client-side caching, prefetching, and a service worker&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>deepsec, vercel-openclaw, Next.js Security Releases, Adapters API, portless, shadcn/ui, Vercel Weekly</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 08 May 2026 06:51:50 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/deepsec-vercel-openclaw-nextjs-security-releases-adapters-api-portless-shadcnui-vercel-11ap</link>
      <guid>https://dev.to/erfanebrahimnia/deepsec-vercel-openclaw-nextjs-security-releases-adapters-api-portless-shadcnui-vercel-11ap</guid>
      <description>&lt;p&gt;&lt;a href="https://vercel.com/blog/introducing-deepsec-find-and-fix-vulnerabilities-in-your-code-base" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F5hauux2KdvSbZf6jj7XzSd%3Fw%3D400%26fit%3Dclip" alt="Introducing deepsec: The security harness for finding vulnerabilities in your codebase" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/introducing-deepsec-find-and-fix-vulnerabilities-in-your-code-base" rel="noopener noreferrer"&gt;Introducing deepsec: The security harness for finding vulnerabilities in your codebase&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new open source tool from Vercel that uses AI coding agents to find security vulnerabilities in your codebase. It runs locally on your laptop or on your own infrastructure using your existing AI subscriptions. The workflow involves static analysis to find security-sensitive files, agent investigation of each candidate, and includes a revalidation step to reduce false positives&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/nextjs/status/2052489312944759202" rel="noopener noreferrer"&gt;𝕏 Next.js 16.2.6 &amp;amp; 15.5.18 Security Releases&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Important security updates have landed for both Next.js 16 and 15. These patches fix multiple vulnerabilities ranging from low to high severity&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FmTJ6xGQeSSSMPcNj69f2yH%3Fw%3D1000%26fit%3Dclip" alt="Your AI shouldn't grade its own homework" width="2400" height="1450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;Your AI shouldn't grade its own homework&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Claude Code writes beautiful code. So does Codex. But here's the thing, they also think they write beautiful code. And when you ask an AI to review code it just wrote, you get the intellectual equivalent of a student grading their own exam. Shockingly, they always pass.&lt;/p&gt;

&lt;p&gt;CodeRabbit CLI plugs into Claude Code and Codex as an external reviewer, different AI Agent, different architecture, 40+ static analyzers and zero emotional attachment to the code it's looking at. The agent writes, CodeRabbit reviews, and the agent fixes. Loop until clean.&lt;/p&gt;

&lt;p&gt;You show up when there's actually something worth approving.&lt;/p&gt;

&lt;p&gt;One command. Autonomous generate-review-iterate cycles. The AI still does the work. It just doesn't get to decide if the work is good anymore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://coderabbit.link/erfanjs" rel="noopener noreferrer"&gt;Free tier available. Try CodeRabbit's CLI.&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=EtfYhLuCDKM" rel="noopener noreferrer"&gt;🎧 Next.js works everywhere now&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jimmy Lai, who leads the Next.js team at Vercel, hops on the PodRocket podcast to explain the adapters API: what it is, why it exists, and how it fixes the pain of self-hosting Next.js on platforms like Cloudflare, AWS Amplify, and Netlify&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.rubrik.com/blog/architecture/26/2/async-react-building-non-blocking-uis-with-usetransition-and-useactionstate" rel="noopener noreferrer"&gt;Async React: Building Non-Blocking UIs with useTransition and useActionState&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A practical guide to two React 19 hooks that make async work easier. &lt;code&gt;useTransition&lt;/code&gt; keeps your UI responsive without manual loading states, while &lt;code&gt;useActionState&lt;/code&gt; bundles state, errors, and pending status into one hook&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=jafMjfCbakw" rel="noopener noreferrer"&gt;► Stop Writing Blind Server Components&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;We've shared this tool before, and now Tobi Mey walks through it on video. RSC Boundary shows you exactly where server components end and client components begin in your Next.js app&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vercel-labs/vercel-openclaw" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FieJZubDYXZtBY1f9aTEJBH%3Fw%3D1000%26fit%3Dclip" alt="vercel-openclaw" width="1464" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/vercel-openclaw" rel="noopener noreferrer"&gt;vercel-openclaw&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A serverless approach to running OpenClaw. It comes with CLI deployment, sandbox snapshots that preserve state between messages, webhooks routed through Vercel Functions, a Redis-based control plane, and an egress firewall for domain blocking&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/portless/releases/tag/v0.12.0" rel="noopener noreferrer"&gt;portless v0.12.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Portless got some awesome improvements since the last time it was featured. The big one: zero-arg mode auto-discovers your dev script so there's nothing to configure. It also now handles monorepos, giving each workspace package its own subdomain. v0.12 adds &lt;code&gt;--tailscale&lt;/code&gt; and &lt;code&gt;--funnel&lt;/code&gt; flags to share your local apps over Tailscale&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://flueframework.com/" rel="noopener noreferrer"&gt;The Agent Harness Framework&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A framework that lets you build powerful AI agents (think Claude Code or Codex) in just a few lines of TypeScript. It gives you sandboxed shell access, sessions, reusable skills, and structured outputs&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ui.shadcn.com/docs/changelog/2026-05-package-imports-target-aliases" rel="noopener noreferrer"&gt;shadcn/ui: May 2026 updates&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The shadcn CLI now lets you use &lt;code&gt;package.json#imports&lt;/code&gt; (e.g. &lt;code&gt;#components/*&lt;/code&gt;) instead of relying on &lt;code&gt;tsconfig.json&lt;/code&gt; paths. It also adds target aliases so registry items can specify exactly where files get installed&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Bluebag
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F8tZgn2q3GU7LgBgzk1mTzA%3Fw%3D1000%26fit%3Dclip" alt="Add Skills to your AI-SDK Agent in minutes" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;Add Skills to your AI-SDK Agent in minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Execute Skills in runtime VMs without building infrastructure. Run complex scripts, read Skills on-demand, install dependencies, mint download links, and build predictable, specialised agents in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/AmyAEgan/status/2051715015464587759" rel="noopener noreferrer"&gt;𝕏 Vercel Weekly - May 4, 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel's AI Accelerator cohort finished with a Demo Day in SF. Meanwhile, Grok 4.3 landed on the AI Gateway, Stripe Projects now handle Pro plan upgrades, hobby deployments are kept for 30 days by default, and Deployment Checks are now built in&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://web.dev/blog/web-platform-04-2026?hl=en" rel="noopener noreferrer"&gt;New to the web platform in April&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A look at what landed in browsers last month. Highlights include &lt;code&gt;contrast-color()&lt;/code&gt; reaching Baseline (picks black or white for best text contrast), &lt;code&gt;ariaNotify()&lt;/code&gt; for screen reader announcements in Firefox, element-scoped view transitions in Chrome, and &lt;code&gt;Math.sumPrecise&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hackmd.io/@0u1u3zEAQAO0iYWVAStEvw/Hk2Jiv8T-l" rel="noopener noreferrer"&gt;Why TSRX isn't just your Favorite Templating Language&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ryan Carniato digs into TSRX, a potential JSX successor, and explains why it matters: it uses plain JS control flow, allows state inside conditionals and loops (no hook rules), and offers cut-and-paste composability that JSX can't match&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/implementing-server-driven-ui" rel="noopener noreferrer"&gt;Server-Driven UI in 22 lines of TypeScript&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A practical guide to letting your backend control page layouts through JSON. The article covers the JSON contract, a component registry, a tiny recursive renderer, and handling actions like navigation and tracking&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>How React streams UI, React Compiler Rendering, dev3000 CLI, TSRX, Replay, Scroll-Driven Animations, Ship 26 tickets</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 01 May 2026 11:42:53 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/how-react-streams-ui-react-compiler-rendering-dev3000-cli-tsrx-replay-scroll-driven-iig</link>
      <guid>https://dev.to/erfanebrahimnia/how-react-streams-ui-react-compiler-rendering-dev3000-cli-tsrx-replay-scroll-driven-iig</guid>
      <description>&lt;p&gt;&lt;a href="https://inside-react.vercel.app/blog/how-react-streams-ui-out-of-order" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fo7r7u7EBAD7Q3bj2QmdYid%3Fw%3D1000%26fit%3Dclip" alt="How React streams UI out of order and still manages to keep order" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://inside-react.vercel.app/blog/how-react-streams-ui-out-of-order" rel="noopener noreferrer"&gt;How React streams UI out of order and still manages to keep order&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Instead of waiting for every component to be ready, React streams what it can and leaves markers for the rest. When slow components finish, they arrive as hidden divs and get swapped into place by small scripts. This post walks through the full mechanism step by step&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/ship" rel="noopener noreferrer"&gt;Ship 26 tickets just dropped&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel's Ship conference is heading to London, Berlin, New York, Sydney, and San Francisco. Talks and workshops focused on shipping AI agents and apps to production&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Blazity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FnnN1Vx5pFxWkoSDsVVHBeY%3Fw%3D1000%26fit%3Dclip" alt="Blazity" width="2400" height="1350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/Blazity/next-migration-skills" rel="noopener noreferrer"&gt;Next.js migration toolkit that eliminates guesswork and protects production and stability&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most Next.js migrations from Pages Router to App Router follow the same pattern: a developer reads the docs, starts converting files, breaks something in production, then spends weeks firefighting.&lt;/p&gt;

&lt;p&gt;The real problem with migrations are the edge cases nobody warns you about, and the lack of systematic approach. We’ve done enough migrations to confidently say - we’ve been there and done that.&lt;/p&gt;

&lt;p&gt;So we built &lt;code&gt;Skills.md&lt;/code&gt; — an agent-oriented migration toolkit that gives AI coding agents (and developers) a structured, production-safe path from Pages Router to App Router.&lt;/p&gt;

&lt;p&gt;Instead of guesswork and broken deploys you get a repeatable process built from real migration experience.&lt;br&gt;
It's open source and built for Skills.sh.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.isquaredsoftware.com/presentations/2026-04-react-compiler-rendering/?slideIndex=0&amp;amp;stepIndex=0" rel="noopener noreferrer"&gt;A Guide to React Compiler Rendering&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Slides from Mark Erikson's React Miami 2026 talk covering how React rendering works and how the React Compiler automatically optimizes it&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://upskills.dev/tutorials/react-client-and-server-state?sections=1,2,3,4,5,6" rel="noopener noreferrer"&gt;React Client and Server State&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This guide shows how to split your state into two buckets: server state (API data) handled by TanStack Query, and client state (UI flags, themes) handled by Zustand or plain React hooks&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://robertjwebb.substack.com/p/draft-hacking-in-request-body-during" rel="noopener noreferrer"&gt;Hacking in request body during render in Next.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robert Webb explored the Next.js codebase to answer the question of why you can't read the request body during render like you can with headers. He managed to hack it in by modifying how &lt;code&gt;NodeNextRequest&lt;/code&gt; and &lt;code&gt;workUnitStore&lt;/code&gt; work, and accidentally found a bug with &lt;code&gt;cacheComponents&lt;/code&gt; and POST requests along the way&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/iamncdai/status/2048085088974618849" rel="noopener noreferrer"&gt;𝕏 Light and dark mode favicon in Next.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A handy code snippet showing how to serve different favicons depending on whether a user is in light or dark mode&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vercel-labs/dev3000" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FnzhVegj5mNHQr5EWQhWEVG%3Fw%3D1000%26fit%3Dclip" alt="d3k (dev3000)" width="1450" height="817"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/dev3000" rel="noopener noreferrer"&gt;d3k (dev3000)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A CLI tool that records your entire dev session: server logs, browser console messages, network requests, screenshots, and user interactions into a unified, timestamped feed that AI assistants can read and reason about&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tsrx.dev/" rel="noopener noreferrer"&gt;TSRX&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A language extension that picks up where JSX left off. Control flow, scoped styles, and local variables sit right inside your templates&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/preventing-flash-before-hydration" rel="noopener noreferrer"&gt;Preventing Flash Before Hydration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A demo repo showing how to avoid the flash of content that happens before React hydration kicks in. It covers patterns like using inline scripts for date formatting without hydration errors, persisting accordion state with &lt;code&gt;localStorage&lt;/code&gt;, and a handy &lt;code&gt;InlineScript&lt;/code&gt; helper that sidesteps React's script warning&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/skillsynchq/replay" rel="noopener noreferrer"&gt;Replay&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Upload a conversation from Claude Code or Codex and get a clean, shareable link. Your session becomes a readable thread with inline diffs and tool calls&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Bluebag
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F8tZgn2q3GU7LgBgzk1mTzA%3Fw%3D1000%26fit%3Dclip" alt="Add Skills to your AI-SDK Agent in minutes" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.bluebag.ai/blog/add-skills-to-your-ai-sdk-agent-in-minutes" rel="noopener noreferrer"&gt;Add Skills to your AI-SDK Agent in minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Execute Skills in runtime VMs without building infrastructure. Run complex scripts, read Skills on-demand, install dependencies, mint download links, and build predictable, specialised agents in minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://saschb2b.com/blog/react-compiler-year-in-review" rel="noopener noreferrer"&gt;The React Compiler at Eighteen Months: The Arc, the Debates, and What's Next&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A retrospective on the React Compiler's journey since React 19. It handles memoization so you don't have to, but the migration story for existing apps is still messy. The piece also looks ahead at compiler-aware Server Components, &lt;code&gt;useEvent&lt;/code&gt;, and better dev tooling&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.joshwcomeau.com/animation/scroll-driven-animations/" rel="noopener noreferrer"&gt;Scroll-Driven Animations&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The CSS &lt;code&gt;animation-timeline&lt;/code&gt; API maps keyframe animations to scroll progress, and this beginner-friendly guide covers everything from basic setup to advanced linked timelines&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.readwriterachel.com/things-i-learned/2026/04/23/back-to-basics-react-variables.html" rel="noopener noreferrer"&gt;3 ways to store variables in React, and why you shouldn't sleep on useRef&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Most devs know &lt;code&gt;useRef&lt;/code&gt; for DOM access, but it's also great for storing data that should survive re-renders without touching the UI. This post walks through all three ways to store variables in React: plain variables, state, and refs with clear examples showing how each behaves&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://itnext.io/backend-for-frontend-bff-what-it-is-and-when-to-use-it-6e8edb72e32c" rel="noopener noreferrer"&gt;Backend for Frontend (BFF): What It Is and When to Use It&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Instead of one generic API for all clients, a BFF gives each frontend its own small backend that fetches, combines, and shapes data from multiple services. This guide covers when it's worth it, when it's not, and common mistakes to avoid&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>React Email 6.0, Vercel got hacked, Prevent flash before hydration, Logging in Next.js, shader-lab, TypeScript 7.0, nextmap</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 24 Apr 2026 11:20:30 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/react-email-60-vercel-got-hacked-prevent-flash-before-hydration-logging-in-nextjs-shader-lab-3425</link>
      <guid>https://dev.to/erfanebrahimnia/react-email-60-vercel-got-hacked-prevent-flash-before-hydration-logging-in-nextjs-shader-lab-3425</guid>
      <description>&lt;p&gt;&lt;a href="https://resend.com/blog/react-email-6" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F5zj8XzBDeujUkFfY3SZ9MC%3Fw%3D1000%26fit%3Dclip" alt="React Email 6.0" width="2400" height="1260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://resend.com/blog/react-email-6" rel="noopener noreferrer"&gt;React Email 6.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The highlight of this release is an open-source email editor that outputs inbox-ready HTML. It has a composable API for building custom blocks like image uploaders or social embeds. Also new: a unified single package for all components and a fresh set of templates for auth and e-commerce flows&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/kb/bulletin/vercel-april-2026-security-incident" rel="noopener noreferrer"&gt;Vercel April 2026 security incident&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel disclosed a security incident where an attacker compromised a third-party AI tool (Context.ai) used by an employee, gaining access to some internal systems and non-sensitive environment variables. No npm packages were affected. Vercel recommends rotating credentials, enabling 2FA, and reviewing activity logs&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Clerk
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://go.clerk.com/hOneCiJ" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FrForPCDT7BnmYzJQu7QRva%3Fw%3D1000%26fit%3Dclip" alt="Clerk CLI: manage auth from your terminal" width="1840" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://go.clerk.com/hOneCiJ" rel="noopener noreferrer"&gt;Clerk CLI: manage auth from your terminal&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The new Clerk CLI detects your framework and gets auth ready to configure. Run &lt;code&gt;clerk init&lt;/code&gt; to scaffold, &lt;code&gt;clerk config&lt;/code&gt; to manage sign-in methods, redirects, and session policies in code, or &lt;code&gt;clerk api&lt;/code&gt; to query users and orgs. Try it.&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/commit/931868b86c4079300d059dab4301e8dab8924249#diff-c7ddc7709fa2b3f7c68d45c10aa119f5250bb8f758525cedb0329f9972660c68" rel="noopener noreferrer"&gt;New Docs: How to prevent flash before hydration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;New docs explaining how to avoid the visible flicker when things like dates, themes, or localStorage values differ between server and client&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://valentinprugnaud.dev/posts/2026/04/if-you-cant-see-the-boundary-you-cant-reason-about-the-system" rel="noopener noreferrer"&gt;If You Can't See the Boundary, You Can't Reason About the System&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;We featured the RSC Boundary package in a previous issue. This article from its creator explains the problem it solves: When working with React Server Components, you often have to guess where the server/client split is by reading &lt;code&gt;'use client'&lt;/code&gt; directives and tracing imports. RSC Boundary removes that guesswork. It's a dev-only overlay that highlights which parts of your page are server-rendered and which are client components, giving you a live visual map&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.codewithseb.com/blog/nextjs-16-migration-guide-breaking-changes" rel="noopener noreferrer"&gt;Next.js 16 Migration Guide: Everything That Breaks (And How to Fix It)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A thorough, hands-on migration guide covering every breaking change in Next.js 16 and how to deal with it&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://yurimutti.com/posts/logging-nextjs-loglayer-instrumentation-console-override-structured-logs" rel="noopener noreferrer"&gt;Logging in Next.js with LogLayer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js logs can get messy across different runtimes. This post shows how to fix that with one shared logger using LogLayer, console interception in &lt;code&gt;instrumentation.ts&lt;/code&gt;, and structured output with Pino for production&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://eng.basement.studio/tools/shader-lab" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F8JusztjgqkA6xSQVyvr7is%3Fw%3D1000%26fit%3Dclip" alt="@basementstudio/shader-lab" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://eng.basement.studio/tools/shader-lab" rel="noopener noreferrer"&gt;@basementstudio/shader-lab&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A visual tool and React runtime for creating layered shader compositions. Render directly in your app, use them as Three.js textures, or apply built-in effects like ASCII, CRT, dithering, and pixel sorting as postprocessing over your own 3D scenes. Fully open source&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/icydotdev/nextmap" rel="noopener noreferrer"&gt;nextmap&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A CLI tool that scans your Next.js project and shows every route as an interactive graph in your browser. It picks up pages, API routes, middleware, and HTTP methods&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://animata.design/" rel="noopener noreferrer"&gt;Animata&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Handcrafted interaction animations and visual effects built with Tailwind CSS and Framer Motion. Works like shadcn/ui&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/" rel="noopener noreferrer"&gt;Announcing TypeScript 7.0 Beta&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The first beta release of TypeScript 7.0 is here, and it's a big deal. The compiler has been completely rewritten in Go, making it around 10x faster than TypeScript 6.0. It now supports parallel type-checking and parallel project builds out of the box. Despite being a beta, the team says it's stable enough for everyday use&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡️ Sponsor: Expo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://expo.dev/blog/from-web-to-native-with-react?utm_source=Nextjsweekly&amp;amp;utm_medium=newsletter&amp;amp;utm_campaign=33087804-React%20to%20Native&amp;amp;utm_content=react_to_native_blog" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fv8yG3S8r5VDQB2WDyJxXbz%3Fw%3D400%26fit%3Dclip" alt="How to go from Web to Native with React" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://expo.dev/blog/from-web-to-native-with-react?utm_source=Nextjsweekly&amp;amp;utm_medium=newsletter&amp;amp;utm_campaign=33087804-React%20to%20Native&amp;amp;utm_content=react_to_native_blog" rel="noopener noreferrer"&gt;How to go from Web to Native with React&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Everything that web devs need to know about building their first mobile app - You already know React. With Expo, you can use that knowledge to build fully native apps for iOS and Android without starting over or learning new tools&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://frontendmasters.com/blog/building-a-ui-without-breakpoints/" rel="noopener noreferrer"&gt;Building a UI Without Breakpoints&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Modern interfaces are component-first, but most responsive CSS is still viewport-first. This article bridges that gap with four methods: intrinsic layouts using &lt;code&gt;auto-fit&lt;/code&gt; and &lt;code&gt;minmax()&lt;/code&gt;, fluid scaling with &lt;code&gt;clamp()&lt;/code&gt;, container units for sizing relative to a component's actual space, and container queries for true structural changes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/10-react-tips-that-actually-matter" rel="noopener noreferrer"&gt;10 React tips I wish someone had told me before I mass-produced bugs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Lessons learned from production bugs and code reviews. Includes tips like replacing multiple &lt;code&gt;useState&lt;/code&gt; calls with &lt;code&gt;useReducer&lt;/code&gt;, keeping state close to where it's used, using &lt;code&gt;key&lt;/code&gt; to reset components, and choosing Compound Components over prop-heavy APIs&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://techhub.iodigital.com/articles/a-typescript-class-based-websocket-library-for-react/websockets" rel="noopener noreferrer"&gt;A TypeScript Class-Based WebSocket Library for React&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Explaining a different approach to WebSockets in React. Instead of putting everything in hooks, the heavy lifting lives in TypeScript classes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://frontendmasters.com/blog/ai-generated-ui-is-inaccessible-by-default/" rel="noopener noreferrer"&gt;AI-Generated UI Is Inaccessible by Default&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Breaks down exactly why LLMs produce inaccessible code and presents a practical five-layer fix: prompt constraints, static analysis with &lt;code&gt;eslint-plugin-jsx-a11y&lt;/code&gt;, runtime testing with axe-core, CI enforcement via GitHub Actions, and using accessible component libraries like Headless UI, Radix, or React Aria&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>react</category>
    </item>
    <item>
      <title>Instant Navigations, Bye Vendor Lock-in, Ultracite, Blocking Bots, Distributed 'use cache', varlock, Vertical Codebase</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Thu, 16 Apr 2026 18:55:43 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/instant-navigations-bye-vendor-lock-in-ultracite-blocking-bots-distributed-use-cache-33i3</link>
      <guid>https://dev.to/erfanebrahimnia/instant-navigations-bye-vendor-lock-in-ultracite-blocking-bots-distributed-use-cache-33i3</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vercel/next.js/pull/91334/changes#diff-e7a7ed97e16a9c22e3db281bb932db53aebce3c142753b38ef5231ded846acfa" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FeML7s4kDA4rvVpo5bwoTay%3Fw%3D1000%26fit%3Dclip" alt="Ensuring Instant Navigations" width="1280" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/91334/changes#diff-e7a7ed97e16a9c22e3db281bb932db53aebce3c142753b38ef5231ded846acfa" rel="noopener noreferrer"&gt;Next.js Canary: Ensuring Instant Navigations&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new guide covering how to get instant client-side navigations by putting &lt;code&gt;&amp;lt;Suspense&amp;gt;&lt;/code&gt; boundaries and &lt;code&gt;use cache&lt;/code&gt; in the right spots. The new &lt;code&gt;unstable_instant&lt;/code&gt; export checks your caching structure automatically, and new DevTools let you preview exactly what users see before dynamic content streams in. The feature set is currently only available in the canary branch&lt;/p&gt;




&lt;p&gt;If you wanna get these updates in your inbox every week, just &lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;subscribe to the newsletter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprm66wis0rsx1swdxzwi.png" alt="Next.js Weekly" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=UCveltYOQIs" rel="noopener noreferrer"&gt;► Next.js Vendor Lock-in No More&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Syntax podcast sits down with Tim Neutkens and Jimmi Lai from the Next.js team to talk about the newly stable Adapters API, which lets you host Next.js on platforms like Cloudflare and Netlify without hacky workarounds. They also cover how Next.js caching works across layers, why they built Turbopack in Rust instead of using Vite, and what's new in Next.js 16.2&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/ZaynHao/status/2042187522416242985" rel="noopener noreferrer"&gt;𝕏 Blocking WordPress Bot Scanners on Vercel to Save Costs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Random bots scan your site for WordPress files that don't exist in Next.js. They still trigger serverless functions and cost you money. A single regex rule in Vercel's Firewall stops them before they reach your app&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tigerabrodi.blog/next-js-use-cache-remote-a-distributed-cache-in-one-line" rel="noopener noreferrer"&gt;Next.js use cache: remote: A Distributed Cache in One Line&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js 16 lets you add &lt;code&gt;'use cache: remote'&lt;/code&gt; to any async function to get a shared cache across all serverless instances. No Redis or extra setup needed. The article covers tag-based invalidation, time-based expiration, and smart cache key design.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/92507" rel="noopener noreferrer"&gt;Docs: Add Building guide&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new draft PR adds a "Building" guide to the Next.js docs. It explains what &lt;code&gt;next build&lt;/code&gt; does, how to read build output symbols, pre-render dynamic routes, and fix common prerender errors&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://varlock.dev/blog/march-2026-recap/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fsxqdp9XbE2c9QU13nU7CiE%3Fw%3D1000%26fit%3Dclip" alt="varlock" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://varlock.dev/blog/march-2026-recap/" rel="noopener noreferrer"&gt;varlock&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Varlock is an open-source, schema-first approach to environment variable management. The latest update brings single-file ESM and TypeScript plugin support, a new &lt;code&gt;varlock typegen&lt;/code&gt; command for environment-independent type generation, and handy new functions like &lt;code&gt;ifs()&lt;/code&gt; for Excel-style conditionals. The Next.js integration also got a major update, adding full Turbopack support for both Next.js 15 and 16 alongside the existing webpack support&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://better-auth.com/blog/1-6" rel="noopener noreferrer"&gt;BetterAuth 1.6&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This bridge release focuses less on flashy new features and more on making the project more solid. That said, there's plenty to note: the core package size was cut in half, password hashing is now non-blocking, OpenTelemetry tracing for auth API calls and database operations, plus passkey registration before a user even has a session&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.ultracite.ai/" rel="noopener noreferrer"&gt;Ultracite&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A production-ready preset that works with ESLint, Biome, and Oxlint so you don't have to worry about configuration. It comes with hundreds of preconfigured rules, supports monorepos, and can even generate linting rules for 40+ AI coding agents like Claude Code, Cursor, and GitHub Copilot&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://base-ui.com/react/overview/releases/v1-4-0" rel="noopener noreferrer"&gt;Base UI v1.4.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;There's a new OTP Field component, fixes for tricky edge cases in Combobox, Select, Toast, and Drawer, and general improvements to accessibility, scroll handling, and keyboard navigation&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/" rel="noopener noreferrer"&gt;The uphill climb of making diff lines performant&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;GitHub's engineering team explains how they made the pull request "Files changed" tab faster by simplifying their React code&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/link2twenty/react-singletons-arent-as-evil-as-you-think-44m8"&gt;React: Singletons aren't as evil as you think&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Singletons have a bad reputation in React, but this post argues they can be clean and powerful&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tkdodo.eu/blog/the-vertical-codebase" rel="noopener noreferrer"&gt;The Vertical Codebase&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;TkDodo makes a strong case against the common components/hooks/utils folder structure. Instead, group code by what it does, not what it is. He shares real examples from the Sentry codebase and tips on enforcing boundaries between modules&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://casco.com/blog/the-blueprint-of-a-north-korean-attack-on-open-source" rel="noopener noreferrer"&gt;The Blueprint of a North Korean Attack on Open-Source&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A technical walkthrough of a supply chain attack attempt on Better-Auth. Malicious code was disguised inside build configs like &lt;code&gt;next.config&lt;/code&gt;.mjs, designed to silently steal credentials and open a backdoor. The payloads were hosted on blockchains, making them permanent and nearly impossible to remove&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>CVE-2026-23869, The Precompute Pattern, Boneyard, use cache migration, RSC Boundary</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 10 Apr 2026 11:04:51 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/cve-2026-23869-the-precompute-pattern-boneyard-use-cache-migration-rsc-boundary-be2</link>
      <guid>https://dev.to/erfanebrahimnia/cve-2026-23869-the-precompute-pattern-boneyard-use-cache-migration-rsc-boundary-be2</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://aurorascharff.no/posts/the-precompute-pattern-encoding-dynamic-data-into-urls-in-nextjs/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2FojRVfAAMbacZYQatJgYMGi%3Fw%3D1000%26fit%3Dclip" alt="The Precompute Pattern: Encoding Dynamic Data into URLs in Next.js" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aurorascharff.no/posts/the-precompute-pattern-encoding-dynamic-data-into-urls-in-nextjs/" rel="noopener noreferrer"&gt;The Precompute Pattern: Encoding Dynamic Data into URLs in Next.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Precompute pattern solves the problem of a single &lt;code&gt;cookies()&lt;/code&gt; or &lt;code&gt;headers()&lt;/code&gt; call forcing your entire app into dynamic rendering. Instead of reading dynamic data inside components, you resolve it once in middleware and encode it into a hidden URL segment. This lets Next.js treat each variant as a static page. The post walks through a full implementation, covers how the Vercel Flags SDK formalizes this approach, and explains why 'use cache' in Next.js 16 makes it unnecessary for most cases&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.imperva.com/blog/react2dos-cve-2026-23869-when-the-flight-protocol-crashes-at-takeoff/" rel="noopener noreferrer"&gt;React2DoS (CVE-2026-23869): When the Flight Protocol Crashes at Takeoff&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Security researchers at Imperva found a way to crash React servers with tiny requests. The bug (CVE-2026-23869) lives in the Flight protocol, which RSC uses to pass data between client and server. Also check out the &lt;a href="https://vercel.com/changelog/summary-of-cve-2026-23869" rel="noopener noreferrer"&gt;Vercel summary&lt;/a&gt; of this vulnerability and update to the latest Next.js version&lt;/p&gt;




&lt;p&gt;If you wanna get these updates in your inbox every week, just &lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;subscribe to the newsletter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprm66wis0rsx1swdxzwi.png" alt="Next.js Weekly" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📙 Articles / Tutorials / News
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://upskills.dev/tutorials/react-rendering-strategies" rel="noopener noreferrer"&gt;React Rendering Strategies&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A detailed guide that walks you through the full history of React rendering. It covers SPAs, SSR, SSG, and React Server Components with interactive diagrams and real-world examples&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/61391" rel="noopener noreferrer"&gt;feat(next): add sitemap index support&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A draft PR has been opened to add native &lt;code&gt;sitemap-index.{ts|js|xml}&lt;/code&gt; file support to Next.js. This feature would let you dynamically generate a sitemap index following the Sitemap Index protocol, making it much easier to manage large sites with many sitemaps&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/92392" rel="noopener noreferrer"&gt;Docs: add unstable_cache → use cache migration guide&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Next.js docs will soon include a guide that maps the old &lt;code&gt;unstable_cache&lt;/code&gt; patterns to the new &lt;code&gt;use cache&lt;/code&gt; API, showing how &lt;code&gt;revalidate: 3600&lt;/code&gt; becomes &lt;code&gt;cacheLife('hours')&lt;/code&gt;, &lt;code&gt;tags: ['x']&lt;/code&gt; becomes &lt;code&gt;cacheTag('x')&lt;/code&gt;, and explains that &lt;code&gt;keyParts&lt;/code&gt; are no longer needed&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://punits.dev/blog/use-client-in-nextjs/" rel="noopener noreferrer"&gt;‘use client’ in Next.js: What It Does, What It Costs, and When to Use It&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Every &lt;code&gt;use client&lt;/code&gt; you add comes with a price tag. This article breaks down exactly what that cost looks like: more JavaScript sent to the browser, extra hydration work blocking the main thread, and potential data-fetching waterfalls&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;a href="https://reactsummit.com?utm_source=partners&amp;amp;utm_medium=nextjsweekly" rel="noopener noreferrer"&gt;⚛️ React Summit | June 12 &amp;amp; 16, 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The world’s biggest React conference in beautiful Amsterdam and online! Learn from top React experts &amp;amp; connect with the community.&lt;/p&gt;

&lt;p&gt;Use code &lt;strong&gt;&lt;code&gt;NEXT&lt;/code&gt; for 10% off tickets&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://boneyard.vercel.app/overview" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2F473gtM2iH83fpCpBcZcwXQ%3Fw%3D1000%26fit%3Dclip" alt="Boneyard" width="1344" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boneyard.vercel.app/overview" rel="noopener noreferrer"&gt;Boneyard&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Boneyard snapshots your real UI and creates a flat list of positioned, sized rectangles that mirror your layout exactly. Just wrap your component in &lt;code&gt;&amp;lt;Skeleton&amp;gt;&lt;/code&gt; and you get pixel-perfect skeleton screens that stay in sync with your actual design&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/foxted/rsc-boundary" rel="noopener noreferrer"&gt;RSC Boundary&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A simple devtool that draws colored outlines around your components so you can instantly see which parts are server-rendered and which are client-side&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/rl0425/use-form-guard" rel="noopener noreferrer"&gt;use-form-guard&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Since Next.js App Router dropped router.events, blocking navigation for unsaved forms has been a pain point. This lightweight hook (~0.8KB, no dependencies) solves it by intercepting tab close, SPA navigation, and browser back/forward&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/aralroca/next-translate" rel="noopener noreferrer"&gt;next-translate&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A minimal translation library for Next.js that automatically loads only the namespaces each page needs in the current language&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition/" rel="noopener noreferrer"&gt;What To Know in JavaScript (2026 Edition)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Chris Coyier's yearly roundup covering everything a JavaScript developer should have on their radar. From new ES2025 features like iterator helpers and set methods, to the Temporal API, to TypeScript v6 preparing for a massive v7 finally fixing dates&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/you-really-really-dont-need-an-effect" rel="noopener noreferrer"&gt;You really, really, really don't need an effect! I swear!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A practical guide to eliminating unnecessary &lt;code&gt;useEffect&lt;/code&gt; calls in React. The post provides a clear decision tree: computed values should be derived inline, user actions belong in event handlers, state resets should use the &lt;code&gt;key&lt;/code&gt; prop, and data fetching should use a library like TanStack Query&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tkdodo.eu/blog/test-ids-are-an-a11y-smell" rel="noopener noreferrer"&gt;Test IDs are an a11y smell&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you're still reaching for &lt;code&gt;data-testid&lt;/code&gt; in your tests, this post might change your mind. The author argues that role-based selectors (like &lt;code&gt;getByRole('button', { name: 'Open Widget' }))&lt;/code&gt; are far better because they mirror how real users interact with your app and they double as basic accessibility checks&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.aha.io/engineering/articles/why-we-rolled-our-own-rsc-framework" rel="noopener noreferrer"&gt;Why we rolled our own React Server Components framework&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A team's journey of ditching Gatsby and building their own React Server Components framework in under 1,000 lines of code with React 19 and Vite's new RSC plugin&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Turborepo 2.9, React Fiber explained, jal-co/ui, Next.js Mental Model, useOffline, Debug React with AI</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 03 Apr 2026 11:01:20 +0000</pubDate>
      <link>https://dev.to/erfanebrahimnia/turborepo-29-react-fiber-explained-jal-coui-nextjs-mental-model-useoffline-debug-react-with-h4p</link>
      <guid>https://dev.to/erfanebrahimnia/turborepo-29-react-fiber-explained-jal-coui-nextjs-mental-model-useoffline-debug-react-with-h4p</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://inside-react.vercel.app/blog/how-does-react-fiber-render-your-ui" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fvz5DDc8BpAdAzHMNhYo6Sg%3Fw%3D1000%26fit%3Dclip" alt="How Does React Fiber Render Your UI" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://inside-react.vercel.app/blog/how-does-react-fiber-render-your-ui" rel="noopener noreferrer"&gt;How Does React Fiber Render Your UI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A single &lt;code&gt;setState&lt;/code&gt; call kicks off a surprisingly sophisticated process. This detailed explainer covers how React Fiber organizes your component tree as a linked list, schedules work based on priority lanes, skips unchanged subtrees for efficiency, and batches DOM updates in a single commit phase&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aurorascharff.no/posts/implementing-nextjs-16-use-cache-with-next-intl-internationalization/" rel="noopener noreferrer"&gt;Implementing Next.js 16 'use cache' with next-intl Internationalization&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post got featured before, and it's now been updated with the proper solution. The original post covered a workaround for the incompatibility between &lt;code&gt;'use cache'&lt;/code&gt; and next-intl. With Next.js 16.2's new &lt;code&gt;next/root-params&lt;/code&gt; API, the workaround is no longer needed&lt;/p&gt;




&lt;p&gt;If you wanna get these updates in your inbox every week, just &lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;subscribe to the newsletter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nextjsweekly.com/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprm66wis0rsx1swdxzwi.png" alt="Next.js Weekly" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Projects / Packages / Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://turborepo.dev/blog/2-9" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fembed.filekitcdn.com%2Fe%2F6Hn37Q2unMsmjbqMTJFz2S%2Fb5wNwesAMQw7U3mhu6e2Mz%3Fw%3D1000%26fit%3Dclip" alt="Turborepo 2.9" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://turborepo.dev/blog/2-9" rel="noopener noreferrer"&gt;Turborepo 2.9&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A quality-focused release for the popular monorepo build tool, bringing big performance gains and smoother adoption for large codebases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Up to 96% faster startup:&lt;/strong&gt; Time before your first task runs has been drastically reduced&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;turbo query&lt;/code&gt; is stable:&lt;/strong&gt; Query your monorepo's structure with GraphQL or simple shorthands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Circular dependencies no longer block you:&lt;/strong&gt; Adopt Turborepo incrementally in repos with package cycles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenTelemetry (Experimental):&lt;/strong&gt; Send build metrics to tools like Grafana or Datadog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured logging (Experimental):&lt;/strong&gt; Get machine-readable JSON output for CI and tooling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Future Flags:&lt;/strong&gt; Start preparing for 3.0 today with gradual migration paths&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel-labs/json-render" rel="noopener noreferrer"&gt;json-render&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Let AI generate UIs from prompts using only the components you define. Output is always predictable and schema-safe. The new &lt;code&gt;@json-render/next&lt;/code&gt; package can generate full Next.js apps with routes, layouts, and SSR from a single JSON spec&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/aidenybai/bippy" rel="noopener noreferrer"&gt;bippy&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bypasses React's closed internals by hooking into the same mechanism React DevTools uses. Lets you traverse the fiber tree, inspect component props, state, and contexts, and even override them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/jal-co/ui" rel="noopener noreferrer"&gt;jal-co/ui&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A collection of polished, ready-to-use components you can install via the shadcn registry or copy straight into your project. Zero dependencies where possible and server-first&lt;/p&gt;




&lt;h2&gt;
  
  
  🌈 Related
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://bsky.app/profile/danabra.mov/post/3mhrdue7gds2h" rel="noopener noreferrer"&gt;🦋 A Better Way to Debug React with AI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dan Abramov shares a step-by-step workflow for using AI to fix tricky bugs: reproduce it, read the code, add logs, and only then ask the AI to find the issue&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://thehackernews.com/2026/03/axios-supply-chain-attack-pushes-cross.html" rel="noopener noreferrer"&gt;Axios Supply Chain Attack Pushes Cross-Platform RAT via Compromised npm Account&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Axios, the popular HTTP client, fell victim to a supply chain attack. An attacker compromised the maintainer's npm account and published two rogue versions (1.14.1 and 0.30.4) containing a hidden dependency that installs a remote access trojan across Windows, macOS, and Linux&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/reactjs/comments/1s6r50x/i_finally_understand_react_hydration_and_why_it/" rel="noopener noreferrer"&gt;I finally understand React hydration and why it exists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this Reddit post a developer shares the journey of how he finally understood why React needs hydration after years of confusion&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.platformatic.dev/why-nodejs-needs-a-virtual-file-system" rel="noopener noreferrer"&gt;Why Node.js needs a virtual file system&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matteo Collina introduces &lt;code&gt;node:vfs&lt;/code&gt;, a new Node.js core module that lets you create in-memory filesystems that work with &lt;code&gt;import&lt;/code&gt;, &lt;code&gt;require()&lt;/code&gt;, and standard &lt;code&gt;fs&lt;/code&gt; calls&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>react</category>
    </item>
  </channel>
</rss>
