<?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>Forem: Erfan Ebrahimnia</title>
    <description>The latest articles on Forem by Erfan Ebrahimnia (@erfanebrahimnia).</description>
    <link>https://forem.com/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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F291054%2F5d123de2-5373-4a06-847f-bfed543efb38.jpeg</url>
      <title>Forem: Erfan Ebrahimnia</title>
      <link>https://forem.com/erfanebrahimnia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/erfanebrahimnia"/>
    <language>en</language>
    <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://forem.com/erfanebrahimnia/deepsec-vercel-openclaw-nextjs-security-releases-adapters-api-portless-shadcnui-vercel-11ap</link>
      <guid>https://forem.com/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://forem.com/erfanebrahimnia/how-react-streams-ui-react-compiler-rendering-dev3000-cli-tsrx-replay-scroll-driven-iig</link>
      <guid>https://forem.com/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://forem.com/erfanebrahimnia/react-email-60-vercel-got-hacked-prevent-flash-before-hydration-logging-in-nextjs-shader-lab-3425</link>
      <guid>https://forem.com/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://forem.com/erfanebrahimnia/instant-navigations-bye-vendor-lock-in-ultracite-blocking-bots-distributed-use-cache-33i3</link>
      <guid>https://forem.com/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://forem.com/erfanebrahimnia/cve-2026-23869-the-precompute-pattern-boneyard-use-cache-migration-rsc-boundary-be2</link>
      <guid>https://forem.com/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://forem.com/erfanebrahimnia/turborepo-29-react-fiber-explained-jal-coui-nextjs-mental-model-useoffline-debug-react-with-h4p</link>
      <guid>https://forem.com/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>
    <item>
      <title>Stable Next.js Adapters, WebSocket in App Router, AI Improvements, Error Handling, Sugar High, transitionType prop</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Sun, 29 Mar 2026 18:29:34 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/stable-nextjs-adapters-websocket-in-app-router-ai-improvements-error-handling-sugar-high-lbf</link>
      <guid>https://forem.com/erfanebrahimnia/stable-nextjs-adapters-websocket-in-app-router-ai-improvements-error-handling-sugar-high-lbf</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/blog/nextjs-across-platforms" 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%2FfQyJnMt9qEBUyQevLdPABc%3Fw%3D1000%26fit%3Dclip" alt="Next.js Across Platforms: Adapters, OpenNext, and Our Commitments" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/blog/nextjs-across-platforms" rel="noopener noreferrer"&gt;Next.js Across Platforms: Adapters, OpenNext, and Our Commitments&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js now has an official, stable way for hosting platforms to support the framework. The new Adapter API describes your app's build output in a typed, versioned format that any provider can target. Vercel uses the same public API as everyone else, and a shared test suite ensures consistent behavior across platforms&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/blog/next-16-2-ai" rel="noopener noreferrer"&gt;AI Improvements&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post was part of the Next.js 16.2 release. It focuses on making Next.js work better with AI coding agents. New projects now include an &lt;code&gt;AGENTS.md&lt;/code&gt; file that points agents to bundled docs, browser errors get forwarded to the terminal, a lock file stops duplicate dev servers, and an experimental CLI lets agents inspect your running app through the terminal&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://aurorascharff.no/posts/error-handling-in-nextjs-with-catch-error" rel="noopener noreferrer"&gt;Error Handling in Next.js with catchError&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Aurora Scharff explains why &lt;code&gt;react-error-boundary&lt;/code&gt; falls short with Server Components, and how &lt;code&gt;unstable_catchError&lt;/code&gt; in Next.js 16.2 fixes it by handling framework errors correctly and re-fetching server data on retry&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://inside-react.vercel.app/blog/making-sense-of-key-prop-in-react" rel="noopener noreferrer"&gt;Making sense of 'key' prop in react&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Walks through reconciliation, shows how missing or bad keys cause state bugs, and explains what makes a key actually useful&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/89320" rel="noopener noreferrer"&gt;PR: add WebSocket support for App Router route handlers&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new PR adds native WebSocket support to route handlers via &lt;code&gt;NextResponse.upgrade()&lt;/code&gt;. It follows the standard WebSocket interface, works with middleware for headers, rewrites, and redirects&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/shuding/status/2035666444919468354" rel="noopener noreferrer"&gt;𝕏 React didn’t invent RSC, SSR, or Hydration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Shu Ding shows how SSR, RSC, and Hydration map directly to older tools like Express, Pug, and jQuery&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/asidorenko_/status/2036125973062549532" rel="noopener noreferrer"&gt;𝕏 transitionType prop for Links in Next.js 16.2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Demonstrates how to set the transition type (e.g. &lt;code&gt;fade&lt;/code&gt;, &lt;code&gt;slide-left&lt;/code&gt;, etc.) of the &lt;code&gt;ViewTransition&lt;/code&gt; for a link&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/" 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%2FgN4PuieEHpVeymadvGvbut%3Fw%3D600%26fit%3Dclip" alt="TypeScript 6.0" width="562" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/" rel="noopener noreferrer"&gt;TypeScript 6.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The last version built on the JavaScript codebase. It's a transition release designed to prepare you for TypeScript 7.0, which is being rewritten in Go for much better performance. New features include Temporal API types, &lt;code&gt;RegExp.escape&lt;/code&gt;, and &lt;code&gt;Map.getOrInsert&lt;/code&gt;. There are also some breaking changes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/RhysSullivan/nextjs-mobile-app-template" rel="noopener noreferrer"&gt;Next.js Native App Template&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A boilerplate for building native-feeling PWAs with Next.js 16. Ships as a workout tracker but is designed to be swapped with your own app. Handles all the tricky iOS PWA quirks like broken fixed navs and scroll issues so you don't have to&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/1bye/apiser" rel="noopener noreferrer"&gt;Apiser&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Gives you a higher-level way to work with Drizzle by wrapping tables in models with chainable queries, relation loading, result shaping, and safe error handling&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/huozhi/sugar-high" rel="noopener noreferrer"&gt;Sugar High&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Super lightweight code syntax highlighter, around 1KB after minified and gzipped&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://barvian.me/react-exit-animations" rel="noopener noreferrer"&gt;A React trick to improve exit animations&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Components that update mid-exit-animation look janky. This trick wraps exiting components in Suspense to freeze their DOM, preventing any visual changes during the animation&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.debugbear.com/blog/measuring-react-app-performance" rel="noopener noreferrer"&gt;How to Measure and Optimize React Performance&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Learn to use React 19.2s Performance Tracks and DevTools Profiler to find problems, then apply runtime optimizations, concurrency features, and build-time tools to solve them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://neciudan.dev/name-your-effects" rel="noopener noreferrer"&gt;Start naming your useEffect functions, you will thank me later&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post argues that named &lt;code&gt;useEffect&lt;/code&gt; functions make React code much easier to understand and can also reveal effects that are doing too much&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://handlewithcare.dev/blog/making_react_prosemirror_really_really_fast/" rel="noopener noreferrer"&gt;Making React ProseMirror really, really fast&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;React ProseMirror was too slow for large documents. A single keypress in Moby Dick took 177ms. Through memoization and ref-based position tracking, they got it down to 16ms, even beating ProseMirror's native rendering on Firefox&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Next.js 16.2, unstable_catchError, next-forge 6, React's Rust Compiler, AI Elements 1.9, Banning useEffect</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 20 Mar 2026 13:42:30 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/nextjs-162-unstablecatcherror-next-forge-6-reacts-rust-compiler-ai-elements-19-banning-1mak</link>
      <guid>https://forem.com/erfanebrahimnia/nextjs-162-unstablecatcherror-next-forge-6-reacts-rust-compiler-ai-elements-19-banning-1mak</guid>
      <description>&lt;p&gt;&lt;a href="https://nextjs.org/blog/next-16-2" 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%2FQkkQLds8dj5RQJPhr6ABF%3Fw%3D1000%26fit%3Dclip" alt="Next.js 16.2" width="1280" height="670"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/blog/next-16-2" rel="noopener noreferrer"&gt;Next.js 16.2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This release is packed with performance improvements, better debugging tools, and AI-focused features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;~400% faster dev startup&lt;/strong&gt; – localhost:3000 is ready much quicker during &lt;code&gt;next dev&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;25-60% faster rendering&lt;/strong&gt; – a smarter JSON parsing approach speeds up Server Components payload deserialization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redesigned 500 error page&lt;/strong&gt; – cleaner built-in fallback page for production errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Function logging&lt;/strong&gt; – dev terminal now shows function name, arguments, and execution time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hydration diff indicator&lt;/strong&gt; – error overlay clearly labels server vs. client content mismatches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;--inspect&lt;/code&gt; for &lt;code&gt;next start&lt;/code&gt;&lt;/strong&gt; – attach a Node.js debugger to your production server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;200+ Turbopack fixes&lt;/strong&gt; – including SRI support, &lt;code&gt;postcss.config.ts&lt;/code&gt;, and Server Fast Refresh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI improvements&lt;/strong&gt; – &lt;code&gt;AGENTS.md&lt;/code&gt; in &lt;code&gt;create-next-app&lt;/code&gt;, browser log forwarding, and experimental &lt;code&gt;next-browser&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&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://nextjs.org/docs/app/api-reference/functions/catchError" rel="noopener noreferrer"&gt;&lt;code&gt;unstable_catchError()&lt;/code&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Next.js team is working on a programmatic way to wrap any part of your UI in an error boundary. It's more flexible than the &lt;code&gt;error.js&lt;/code&gt; convention, supporting custom props, retry logic, and server-rendered fallbacks&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=chTyQNM8lzw" rel="noopener noreferrer"&gt;► Next.js Donut Pattern Explained in 5 Minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The video shows the donut pattern, where a client wrapper holds server-rendered content inside it&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/en_JS/status/2031606726689173846" rel="noopener noreferrer"&gt;𝕏 React Compiler: Rust Edition is on the Way&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The React team is porting the React Compiler to Rust, with most of the work done using AI. More details are expected soon&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/alvinsng/status/2033969062834045089" rel="noopener noreferrer"&gt;𝕏 Why we banned React's useEffect&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;One team's journey from &lt;code&gt;useEffect&lt;/code&gt;-induced production bugs to a strict no-direct-useEffect rule. The post offers five concrete patterns that cover most use cases and argues the rule matters even more now that AI agents are writing code&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://vercel.com/changelog/next-forge-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%2FiAPKQB5sWhMo297PRuzfQE%3Fw%3D1000%26fit%3Dclip" alt="next-forge 6" width="1280" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/next-forge-6" rel="noopener noreferrer"&gt;next-forge 6&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;next-forge is a production-ready template for Next.js that aims to be a full, opinionated starter for new apps. This big release adds better DX, a new "agent skill" you can install for structured next-forge knowledge, and new docs. Bun is now the default package manager (pnpm/npm/yarn still work)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/ai-elements-1-9" rel="noopener noreferrer"&gt;AI Elements 1.9&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The latest update adds a new skill to help agents build with the library, plus a &lt;code&gt;&amp;lt;JSXPreview /&amp;gt;&lt;/code&gt; component for rendering streamed JSX and a screenshot action for &lt;code&gt;&amp;lt;PromptInput /&amp;gt;&lt;/code&gt;. The &lt;code&gt;&amp;lt;Conversation /&amp;gt;&lt;/code&gt; component can also now download chats as markdown&lt;/p&gt;

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

&lt;p&gt;Version 1.3.0 brings lots of small fixes plus a few big wins: Drawer is now stable, plus a new &lt;code&gt;SwipeArea&lt;/code&gt; for Drawer. Select, Combobox, and Slider get a new &lt;code&gt;Label&lt;/code&gt; part, and Combobox + Autocomplete add an &lt;code&gt;InputGroup&lt;/code&gt; part. Tooltip adds a &lt;code&gt;closeOnClick&lt;/code&gt; prop, and Menu now supports content transitions via &lt;code&gt;Viewport&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/streamdown/releases/tag/streamdown%402.5.0" rel="noopener noreferrer"&gt;Streamdown 2.5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Streamdown is a component designed to render Markdown streamed from AI models. In version 2.5 new staggered animations cascade content in sequentially, custom renderers can now read code fence metastrings, and line numbers are toggleable. There are also other performance related improvements&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://crystallize.com/blog/best-frontend-frameworks" rel="noopener noreferrer"&gt;The Best Frontend Framework Doesn't Exist, Only Trade-offs Do&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An opinionated overview of modern frameworks arguing there’s no universal winner. Next.js, Astro, and TanStack Start all solve different problems depending on caching, scale, and team experience. The article was previously featured but was recently updated&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/playfulprogramming/two-react-design-choices-developers-dont-like-but-cant-avoid-d6g"&gt;Two React Design Choices Developers Don’t Like—But Can’t Avoid&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;SolidJS creator Ryan Carniato argues that two often‑criticized React patterns, deferred state commits and dependency arrays, exist for good reasons. When async data enters the system, every UI framework eventually runs into the same constraints if it wants to keep the UI consistent&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.anildash.com/2026/03/13/coders-after-ai/" rel="noopener noreferrer"&gt;What do coders do after AI?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Super interesting read! This article breaks down what AI means for developers today. It covers layoffs, changing job roles, and how coding is shifting from hands-on work to guiding AI tools&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.patreon.com/posts/seven-years-to-typescript-152144830" rel="noopener noreferrer"&gt;Seven Years to TypeScript: Migrating 11,000 Files at Patreon&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Patreon shares how they moved their entire frontend from JavaScript to TypeScript over seven years. What started as voluntary adoption eventually needed AI-powered tools to finish the job across 11,000 files and 1 million lines of code&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Next.js Weekly #122: Ship 26, shadcn/cli v4, Portless v0.6, Experimental Markdown Output, Akira, Dynamic Forms, Next.js on VPS</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 13 Mar 2026 12:30:39 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/nextjs-weekly-122-ship-26-shadcncli-v4-portless-v06-experimental-markdown-output-akira-5fii</link>
      <guid>https://forem.com/erfanebrahimnia/nextjs-weekly-122-ship-26-shadcncli-v4-portless-v06-experimental-markdown-output-akira-5fii</guid>
      <description>&lt;p&gt;&lt;a href="https://vercel.com/ship" 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%2FmjrFNp616csXkHai6cpDTL%3Fw%3D1000%26fit%3Dclip" alt="Vercel Ship 26" width="1800" height="942"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Vercel Ship 26 has officially been announced. Early details are out, and tickets are currently at their lowest price, so it's a great time to save your spot&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=4Llhem0M1Og" rel="noopener noreferrer"&gt;🎧 React, Next.js &amp;amp; Server Components at Scale with Aurora Scharff&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A wide chat covering Aurora’s path from robotics to React, and what she does now at Vercel. She explains what React Server Components change, why the new async mental model confuses even senior devs, and how the Next.js App Router fits in&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.smashingmagazine.com/2026/03/building-dynamic-forms-react-next-js/" rel="noopener noreferrer"&gt;Building Dynamic Forms In React And Next.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Explains when React Hook Form is the right tool, and when you might want a form 'engine' like SurveyJS that can handle conditions, calculations, and page flow for you&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/vercel/next.js/pull/90956" rel="noopener noreferrer"&gt;PR: add experimental markdown output&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js is testing a new way to return Markdown for a route, using the same App Router/Pages Router React tree that normally renders HTML. Routes can opt in, and when a request prefers &lt;code&gt;text/markdown&lt;/code&gt;, Next will send Markdown instead of HTML&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.platformatic.dev/scale-nextjs-image-optimization-platformatic" rel="noopener noreferrer"&gt;Scale Next.js Image Optimization with a Dedicated Platformatic Application&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you self-host Next.js, you should check this guide. Platformic wrote about how running Next.js image optimization as a dedicated app (routing &lt;code&gt;/_next/image&lt;/code&gt; to its own service) using Watt and &lt;code&gt;@platformatic/next&lt;/code&gt; can stop your frontend from slowing down during traffic spikes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://madatbay.com/blog/deploying-next-js-on-a-vps-a-practical-step-by-step-guide-without-vercel-lock-in" rel="noopener noreferrer"&gt;Deploying Next.js on a VPS: A Practical Step-by-Step Guide Without Vercel Lock-In&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Shows how to run a Next.js app on your own server using PM2 + NGINX + SSL. It also explains the trade-offs vs Vercel: you won’t get a built-in CDN for images, automatic edge runtime, persistent ISR cache across instances, or auto-scaling unless you set them up yourself&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;a href="https://summit.meetjs.pl/2026/summary?utm_source=nextjs-weekly&amp;amp;utm_medium=newsletter" rel="noopener noreferrer"&gt;meet.js Summit 2026: 15 Years Strong&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;meet.js celebrated 15 years with a nationwide Summit in Poland, with talks on web dev today and the real impact of AI&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://ui.shadcn.com/docs/changelog/2026-03-cli-v4" 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%2Fkvm8CeBunakT3wuvHq9jpu%3Fw%3D1000%26fit%3Dclip" alt="shadcn/cli v4" width="2400" height="1350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ui.shadcn.com/docs/changelog/2026-03-cli-v4" rel="noopener noreferrer"&gt;shadcn/cli v4&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The new version is built for both you and your AI tools. Key features include AI "skills" to reduce coding mistakes, shareable UI presets, full project templates, and a new &lt;code&gt;--dry-run&lt;/code&gt; flag to see changes before they happen&lt;/p&gt;

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

&lt;p&gt;Portless replaces messy port numbers like &lt;code&gt;localhost:3000&lt;/code&gt; with nice, stable names like &lt;code&gt;myapp.localhost&lt;/code&gt;. It was featured a couple of issues ago. v0.6 adds custom TLDs (use &lt;code&gt;.test&lt;/code&gt;, &lt;code&gt;.internal&lt;/code&gt;, etc.), a &lt;code&gt;portless get&lt;/code&gt; command to print a service’s URL, and a &lt;code&gt;--name&lt;/code&gt; flag to override the inferred app name while keeping worktree prefixes&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://spell.sh/" rel="noopener noreferrer"&gt;Spell UI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A large collection of high-quality React components that you can use to build beautiful landingpages&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/sachigoyal/akira" rel="noopener noreferrer"&gt;Akira&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A modern SaaS starter kit built with Next.js, Tailwind CSS, and shadcn/ui. Auth, payments, database, and email all come preconfigured so you can skip the setup and start building right away&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/scaling-redirects-to-infinity-on-vercel" rel="noopener noreferrer"&gt;Scaling redirects to infinity on Vercel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel shares why and how they rebuilt their redirects system to handle huge lists without slowing down requests. It walks through the problems with routing rules and middleware at scale, and the new "bulk redirects" system that uses sharding, Bloom filters, and binary search to keep lookups fast&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://inside-react.vercel.app/blog/understanding-why-react-fiber-exists" rel="noopener noreferrer"&gt;Understanding Why React Fiber Exists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Explains why old React rendering could block the page and how Fiber breaks rendering into small pieces so React can pause, handle actions/clicks first, then continue&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://trigger.dev/blog/shai-hulud-postmortem" rel="noopener noreferrer"&gt;How we got hit by Shai-Hulud: A complete post-mortem&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Trigger.dev shares how one compromised package during &lt;code&gt;pnpm install&lt;/code&gt; led to stolen credentials and a short but destructive GitHub attack. The post walks through the timeline, how the malware worked, and how the team recovered their repositories&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://lukasniessen.medium.com/micro-frontends-when-they-make-sense-and-when-they-dont-a1a06b726065" rel="noopener noreferrer"&gt;Micro Frontends: When They Make Sense and When They Don’t&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Micro frontends can unblock many teams working on one app, but they often cost more effort than they save. The article explains common approaches and when to stay monolith&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Next.js Weekly #120: Drizzle joins PlanetScale, Prisma Next, Better Auth 1.5, react-doctor, next-md-negotiate, Vercel Queues</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 06 Mar 2026 11:28:22 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/nextjs-weekly-120-drizzle-joins-planetscale-prisma-next-better-auth-15-react-doctor-4oeg</link>
      <guid>https://forem.com/erfanebrahimnia/nextjs-weekly-120-drizzle-joins-planetscale-prisma-next-better-auth-15-react-doctor-4oeg</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.prisma.io/blog/the-next-evolution-of-prisma-orm?ref=nextjsweeky" 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%2FgcbtDufBSJz9TUuXjE7kMC%3Fw%3D1000%26fit%3Dclip" alt="The Next Evolution of Prisma ORM" width="1200" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.prisma.io/blog/the-next-evolution-of-prisma-orm?ref=nextjsweeky" rel="noopener noreferrer"&gt;The Next Evolution of Prisma ORM&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Prisma has shared an early look at Prisma Next, a complete rewrite built in TypeScript. It brings a cleaner query API, a type-safe SQL builder, streaming support, extensions, and a new migration system based on graphs. Prisma 7 remains the production recommendation for now but Prisma Next is being built in the open and will eventually become Prisma 8&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.mux.com/blog/react-is-changing-the-game-for-streaming-apps-with-the-activity-component" rel="noopener noreferrer"&gt;React is changing the game for streaming apps with the Activity component&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post shows how the new &lt;code&gt;&amp;lt;Activity&amp;gt;&lt;/code&gt; component in React 19.2 helps preserve component state when UI sections are hidden. Using a video player example, it demonstrates how to keep playback progress when switching tabs and how to pause the player properly using &lt;code&gt;useLayoutEffect&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://twofoldframework.com/blog/error-rendering-with-rsc" rel="noopener noreferrer"&gt;Error rendering with RSC&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post explains how each of React's three environments (RSC, SSR, and the browser) responds to errors, how Suspense boundaries change the behavior, and why the browser is ultimately the best place to handle them&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://newsletter.pragmaticengineer.com/p/the-pulse-cloudflare-rewrites-nextjs" rel="noopener noreferrer"&gt;Cloudflare rewrites Next.js as AI rewrites commercial open source&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In last week’s issue we covered how a Cloudflare engineer used AI agents to rebuild much of Next.js with Vite instead of Turbopack, creating an experimental project called vinext that makes it easier to deploy Next.js apps on Cloudflare. This post explores what it could mean for the Next.js ecosystem and how AI might disrupt commercial open source strategies&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://x.com/nextjs/status/2019098858236833825" rel="noopener noreferrer"&gt;𝕏 Handle a blocking component in Next.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A quick look at two ways to deal with components that slow down page rendering in Next.js&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://better-auth.com/blog/1-5" 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%2FiHfSDSZZjXue6tpH4i2PMn%3Fw%3D1000%26fit%3Dclip" alt="Better Auth 1.5" width="2400" height="1327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://better-auth.com/blog/1-5" rel="noopener noreferrer"&gt;Better Auth 1.5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A huge release with 70+ features and 200+ fixes. Adds a new &lt;code&gt;npx auth&lt;/code&gt; CLI, a full OAuth 2.1 provider, Electron support, typed errors with i18n, Cloudflare D1 support, and a self-service SAML SSO dashboard. Some breaking changes, so review before upgrading&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.react.doctor/" rel="noopener noreferrer"&gt;react-doctor&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A CLI tool from the creator of Million.js. Run one command and get a full health report on your React project. It scans for issues across security, performance, architecture, and correctness, then gives you a 0–100 score with actionable diagnostics you can pass straight to a coding agent to fix&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/kasin-it/next-md-negotiate" rel="noopener noreferrer"&gt;next-md-negotiate&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This small tool lets your Next.js app return Markdown to LLMs and HTML to browsers using the HTTP &lt;code&gt;Accept header&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;The open source error catcher just shipped a big update. Version 1.1.92 introduces an MCP server, letting you explore and triage errors from an LLM conversation. Also includes Sentry support, a Next.js 16 upgrade, a UI redesign, and more hosting options&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://planetscale.com/blog/drizzle-joins-planetscale" rel="noopener noreferrer"&gt;Drizzle joins PlanetScale&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Drizzle team is becoming part of PlanetScale. Their shared focus on performance and developer experience makes the move a natural fit. Drizzle will continue as an independent open source project with PlanetScale’s support&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=wvt5JNUXXLM" rel="noopener noreferrer"&gt;► The Future of TypeScript&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Theo explains how TypeScript grew beyond its original purpose and is now slowing down under massive codebases. To solve this, Microsoft is porting the compiler to Go&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=9_Bf6atmX3g" rel="noopener noreferrer"&gt;► Radix UI → Base UI (in 3min)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Radix UI is no longer actively maintained and the team is now working on Base UI. This video walks through how to migrate in four simple steps&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/vercel-queues-now-in-public-beta" rel="noopener noreferrer"&gt;Vercel Queues now in public beta&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel Queues lets you send messages from your Next.js routes and process them later with automatic retries. This is useful for handling slow or important tasks (like order processing) without blocking requests. It's now in public beta and starts at $0.60 per 1M operations&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>webdev</category>
      <category>prisma</category>
    </item>
    <item>
      <title>Next.js Weekly #119: Cloudflare Next.js Drama, Chat SDK, Sandcastle, New useActionState Docs, Query Abstractions</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Fri, 27 Feb 2026 12:28:19 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/nextjs-weekly-119-cloudflare-nextjs-drama-chat-sdk-sandcastle-new-useactionstate-docs-query-2e91</link>
      <guid>https://forem.com/erfanebrahimnia/nextjs-weekly-119-cloudflare-nextjs-drama-chat-sdk-sandcastle-new-useactionstate-docs-query-2e91</guid>
      <description>&lt;p&gt;&lt;a href="https://blog.cloudflare.com/vinext/" 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%2Fsa3NgzNDd2My62icAEZHLU%3Fw%3D1000%26fit%3Dclip" alt="How we rebuilt Next.js with AI in one week" width="1200" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.cloudflare.com/vinext/" rel="noopener noreferrer"&gt;How we rebuilt Next.js with AI in one week&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Cloudflare spent one week and $1,100 on AI tokens to build &lt;code&gt;vinext&lt;/code&gt;, a supposed drop-in replacement for Next.js that runs on Vite and deploys to Cloudflare Workers out of the box. It's experimental, but it has been tested against the Next.js test suite.&lt;/p&gt;

&lt;p&gt;This sparked heated discussions on X / Twitter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/rauchg/status/2026864132423823499" rel="noopener noreferrer"&gt;We've identified critical vulnerabilities in Vinext&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/GergelyOrosz/status/2027049208369304024" rel="noopener noreferrer"&gt;Gergely Orosz is disappointed with Cloudflare's "marketing"&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/feedthejim/status/2027156055617364272" rel="noopener noreferrer"&gt;What Cloudflare's 94% test coverage for vinext actually means&lt;/a&gt;&lt;/li&gt;
&lt;/ul&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://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react" rel="noopener noreferrer"&gt;Building Design Components with Action Props using Async React&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you find yourself wiring up loading states and optimistic updates every time a user interaction triggers a Server Component re-render, this post shows a cleaner way by building reusable components that handle all of that internally&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/docs/app/guides/ai-agents" rel="noopener noreferrer"&gt;Set up your Next.js project for AI coding agents&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Next.js has introduced a new guide on how to make AI coding agents smarter in your project&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://react.dev/reference/react/useActionState" rel="noopener noreferrer"&gt;New useActionState docs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The React team has published a major rewrite of the &lt;code&gt;useActionState&lt;/code&gt; documentation. The new version clearly explains how action queuing works, how to use it with forms, Server Functions, and useOptimistic, and how to handle errors and cancellation. It also adds detailed troubleshooting sections and practical examples&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://engineering.gusto.com/the-journey-to-a-safer-frontend-why-we-removed-react-fc-095ff0b3e2e4" rel="noopener noreferrer"&gt;The Journey to a Safer Frontend: Why We Removed React.FC&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Gusto’s frontend team removed React.FC after learning it could hide bugs and weaken type inference&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://www.chat-sdk.dev/" 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%2Fp7fFKC3DVEdMBLdudUhrUK%3Fw%3D1000%26fit%3Dclip" alt="Chat SDK" width="1200" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.chat-sdk.dev/" rel="noopener noreferrer"&gt;Chat SDK&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel released a new open source TypeScript library that helps you create chatbots for multiple platforms using a single codebase. It comes with type-safe events, JSX-based UI components, Redis state adapters, and built-in AI streaming support&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/styled-components/styled-components/releases/tag/styled-components%406.3.0" rel="noopener noreferrer"&gt;styled-components@6.3.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;After going into maintenance mode last year, the library returns with React Server Components support. No &lt;code&gt;use client&lt;/code&gt; directive is needed, and CSS is automatically injected and handled correctly in React 19. Existing SSR setups still work as before&lt;/p&gt;

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

&lt;p&gt;A new build adapter for Next.js 16 that turns your app into a single executable file using Bun. It embeds your static assets, public files, and Next.js server into one binary&lt;/p&gt;

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

&lt;p&gt;An experimental project powered by Vercel and Vercel Sandbox. Each user gets isolated Linux workspaces accessible from any browser, with a window manager, terminal, file browser, code editor, and X11 app streaming&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/we-ralph-wiggumed-webstreams-to-make-them-10x-faster" rel="noopener noreferrer"&gt;We Ralph Wiggumed WebStreams to make them 10x faster&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel found that WebStreams were slowing down Next.js rendering due to excessive Promise and allocation overhead. They built &lt;code&gt;fast-webstreams&lt;/code&gt;, a drop-in, spec-compliant replacement powered by Node.js streams internally, achieving up to 14x faster performance for the React Server Components streaming pattern&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/changelog/private-storage-for-vercel-blob-now-available-in-public-beta" rel="noopener noreferrer"&gt;Private storage for Vercel Blob, now available in public beta&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel Blob now offers private storage for sensitive files. Unlike public storage, all reads and writes require authentication, so files aren’t exposed via public URLs&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tkdodo.eu/blog/creating-query-abstractions" rel="noopener noreferrer"&gt;Creating Query Abstractions&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article looks at different ways to share query configuration in TanStack Query. It explains why custom hooks can be limiting and introduces &lt;code&gt;queryOptions&lt;/code&gt; as a better abstraction that works across hooks, Suspense, and server usage&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://react.dev/blog/2026/02/24/the-react-foundation" rel="noopener noreferrer"&gt;A New Home for React Hosted by the Linux Foundation&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;React is now officially owned by the newly launched React Foundation, hosted by the Linux Foundation. This means React, React Native, and JSX are no longer owned by Meta, but by an independent foundation instead. The goal is to support React’s long-term future with open governance and shared ownership across the ecosystem&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>react</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>Next.js Weekly #118: Agentic Future, Portless, Virtual Scrolling, Geist Pixel, React’s useTransition, next-mdx-remote-client</title>
      <dc:creator>Erfan Ebrahimnia</dc:creator>
      <pubDate>Sat, 21 Feb 2026 11:10:16 +0000</pubDate>
      <link>https://forem.com/erfanebrahimnia/nextjs-weekly-118-agentic-future-portless-virtual-scrolling-geist-pixel-reacts-14ai</link>
      <guid>https://forem.com/erfanebrahimnia/nextjs-weekly-118-agentic-future-portless-virtual-scrolling-geist-pixel-reacts-14ai</guid>
      <description>&lt;h2&gt;
  
  
  🔥 Hot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://nextjs.org/blog/agentic-future" 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%2Fpy3dJRMaoy5qdFTM5ev5gd%3Fw%3D1000%26fit%3Dclip" alt="Building Next.js for an agentic future" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nextjs.org/blog/agentic-future" rel="noopener noreferrer"&gt;Building Next.js for an agentic future&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Next.js team shares how they improved the framework to work better with AI coding agents. With MCP integration, improved logging, and tools like &lt;code&gt;agents.md&lt;/code&gt; and &lt;code&gt;next-devtools-mcp&lt;/code&gt;, agents can now see runtime errors, routes, and internal state more clearly&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nutrient.io/blog/react-usetransition-guide/" rel="noopener noreferrer"&gt;React’s useTransition: The hook you’re probably using wrong&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If your UI freezes while typing, this guide shows how &lt;code&gt;useTransition&lt;/code&gt; can help. It also compares &lt;code&gt;useTransition&lt;/code&gt; with &lt;code&gt;useDeferredValue&lt;/code&gt;, and shows when debouncing is still the better choice&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://zenn.dev/smartvain/articles/coding-agent-kills-framework-nextjs-reverse-truth?locale=en" rel="noopener noreferrer"&gt;Removing Next.js Taught Me Why Frameworks Are Still Essential Even for AI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;After reading claims that tools like Claude Code make frameworks useless, the author rebuilt a Next.js app using only HTML, CSS, and vanilla JavaScript. At first, everything worked. But over time, the structure began to fall apart. The experiment showed that the real value of a framework isn’t just its features, but the clear and enforced structure that keeps both humans and AI aligned&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.hyperparam.app/hightable-scrolling-billions-of-rows/" rel="noopener noreferrer"&gt;Virtual Scrolling for Billions of Rows&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post breaks down five techniques that make it possible to browse billions of rows in React without freezing the browser&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://svar.dev/blog/nextjs-gantt-chart-tutorial/" rel="noopener noreferrer"&gt;Building a Gantt Chart in Next.js with SVAR React Gantt&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A step-by-step guide to using SVAR React Gantt in a Next.js app. It shows how to fix common SSR and hydration warnings, apply a theme, and enable task editing with a built-in Editor panel&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/subito/how-we-reduced-inp-by-100ms-gtm-isolation-react-compiler-and-better-telemetry-315g"&gt;How We Reduced INP by 100ms+&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A look at how moving to Next.js 16 and enabling the React Compiler boosted responsiveness on a complex page. Together with improved telemetry and script analysis, this resulted in significant INP gains&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://vercel.com/blog/introducing-geist-pixel" 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%2F7QTSrFVqCvHXufYbiwiq8L%3Fw%3D1000%26fit%3Dclip" alt="Introducing Geist Pixel" width="2400" height="1256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/introducing-geist-pixel" rel="noopener noreferrer"&gt;Introducing Geist Pixel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Vercel is expanding the Geist font family with Geist Pixel, a bitmap-style typeface built on a strict pixel grid. It comes with five variants, 480 glyphs, 7 stylistic sets, and supports 32 languages&lt;/p&gt;

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

&lt;p&gt;This tool replaces messy port numbers like &lt;code&gt;localhost:3000&lt;/code&gt; with clean names like &lt;code&gt;myapp.localhost&lt;/code&gt;. It runs a small proxy and routes each app to its own stable URL&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/ipikuka/next-mdx-remote-client" rel="noopener noreferrer"&gt;next-mdx-remote-client&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A maintained fork of next-mdx-remote with support for MDX v3, App Router, and Pages Router. It adds built-in error handling, frontmatter parsing, typed scope, and support for imports/exports in MDX&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/prisma/prisma/releases/tag/7.4.0" rel="noopener noreferrer"&gt;Prisma v7.4.0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A new caching layer stores compiled query plans so similar queries don’t need to be recompiled each time. This helps improve throughput in high‑concurrency apps&lt;/p&gt;




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

&lt;h3&gt;
  
  
  &lt;a href="https://vercel.com/blog/agents-md-outperforms-skills-in-our-agent-evals" rel="noopener noreferrer"&gt;AGENTS.md outperforms skills in our agent evals&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The team expected agents to use skills to read Next.js docs. But in many cases, the agents didn’t trigger the skill at all. This post explores why tool usage can be unreliable and why embedding guidance directly in AGENTS.md led to much better&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://atlas9.dev/blog/soft-delete.html" rel="noopener noreferrer"&gt;The challenges of soft delete&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A practical look at how to handle deleted data the right way. The author compares soft delete with trigger-based archives, and explains the trade-offs of each approach&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://stephaniewalter.design/blog/tips-on-how-to-pick-the-right-icons-for-your-website-with-icons8" rel="noopener noreferrer"&gt;Tips on how to pick the right icons for your website&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post is about avoiding common icon mistakes. It shows why mixing different styles, sizes, and colors can make your design look messy, and how to keep everything consistent&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://gitnation.com/contents/react-components-for-both-the-client-and-the-server" rel="noopener noreferrer"&gt;► React Components for both the Client &amp;amp; the Server&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A React Summit talk on how to build “hybrid” components that keep most of the UI on the server while adding interactivity with small client wrappers&lt;/p&gt;

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