<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Aurora Scharff</title><description>Working on developer experience, docs, and education on the Next.js team at Vercel. Practical guides on React, Next.js, and modern web development.</description><link>https://aurorascharff.no/</link><item><title>Avoiding Server Component Waterfall Fetching with React 19 cache()</title><link>https://aurorascharff.no/posts/avoiding-server-component-waterfall-fetching-with-react-19-cache/</link><guid isPermaLink="true">https://aurorascharff.no/posts/avoiding-server-component-waterfall-fetching-with-react-19-cache/</guid><description>Learn how to use the React 19 cache() API in the Next.js App Router to optimize performance and avoid fetch waterfalls when using React Server Components.</description><pubDate>Tue, 25 Aug 2026 09:35:00 GMT</pubDate></item><item><title>Coordinating Optimistic Updates in Next.js</title><link>https://aurorascharff.no/posts/coordinating-optimistic-updates-in-nextjs/</link><guid isPermaLink="true">https://aurorascharff.no/posts/coordinating-optimistic-updates-in-nextjs/</guid><description>Several changes can happen before the first save finishes. Here is how useActionState and useOptimistic keep those changes on screen while the saves run in order.</description><pubDate>Thu, 13 Aug 2026 10:00:00 GMT</pubDate></item><item><title>Experimenting with RSCs for Performance and UX in Next.js</title><link>https://aurorascharff.no/posts/experimenting-with-rsc-for-performance-and-ux-in-nextjs/</link><guid isPermaLink="true">https://aurorascharff.no/posts/experimenting-with-rsc-for-performance-and-ux-in-nextjs/</guid><description>A few Server Component patterns from a small app on the Next.js 16.3 preview: a load more button that leans on the URL, a search field that keeps focus while results stream, and a message composer that previews your draft on the server.</description><pubDate>Fri, 24 Jul 2026 10:00:00 GMT</pubDate></item><item><title>Building an Active NavLink Component in Next.js</title><link>https://aurorascharff.no/posts/building-an-active-navlink-component-in-nextjs/</link><guid isPermaLink="true">https://aurorascharff.no/posts/building-an-active-navlink-component-in-nextjs/</guid><description>Active link styling is one of the most common things you need in a real application. Here is how to build a reusable NavLink component for a Next.js app, taking inspiration from React Router, that handles Cache Components and flicker-free hydration.</description><pubDate>Sat, 23 May 2026 10:00:00 GMT</pubDate></item><item><title>Component Architecture for React Server Components</title><link>https://aurorascharff.no/posts/component-architecture-for-react-server-components/</link><guid isPermaLink="true">https://aurorascharff.no/posts/component-architecture-for-react-server-components/</guid><description>React Server Components let each component fetch the data it needs. Pages stop being giant loaders that prop-drill everything down. Here&apos;s how that changes how you architect a page, where loading boundaries live, and why it leads to better UX.</description><pubDate>Fri, 22 May 2026 12:00:00 GMT</pubDate></item><item><title>The Precompute Pattern: Encoding Dynamic Data into URLs in Next.js</title><link>https://aurorascharff.no/posts/the-precompute-pattern-encoding-dynamic-data-into-urls-in-nextjs/</link><guid isPermaLink="true">https://aurorascharff.no/posts/the-precompute-pattern-encoding-dynamic-data-into-urls-in-nextjs/</guid><description>The Precompute pattern encodes request-specific data like auth state, locale, and feature flags into URLs to keep pages statically generated. This post walks through how it works, where it shows up in production, and how it relates to cache components.</description><pubDate>Wed, 01 Apr 2026 10:00:00 GMT</pubDate></item><item><title>Implementing Next.js 16 &apos;use cache&apos; with next-intl Internationalization</title><link>https://aurorascharff.no/posts/implementing-nextjs-16-use-cache-with-next-intl-internationalization/</link><guid isPermaLink="true">https://aurorascharff.no/posts/implementing-nextjs-16-use-cache-with-next-intl-internationalization/</guid><description>Next.js 16 introduces component-level caching with the &apos;use cache&apos; directive, but it doesn&apos;t work seamlessly with next-intl yet. Learn why and discover a practical workaround.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Error Handling in Next.js with catchError</title><link>https://aurorascharff.no/posts/error-handling-in-nextjs-with-catch-error/</link><guid isPermaLink="true">https://aurorascharff.no/posts/error-handling-in-nextjs-with-catch-error/</guid><description>react-error-boundary has issues with Server Components in Next.js. catchError is a framework-aware alternative that handles notFound(), redirect(), and server data re-fetching correctly.</description><pubDate>Mon, 23 Mar 2026 15:00:00 GMT</pubDate></item><item><title>Building Design Components with Action Props using Async React</title><link>https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/</link><guid isPermaLink="true">https://aurorascharff.no/posts/building-design-components-with-action-props-using-async-react/</guid><description>Learn how to build reusable design components that expose action props and internally manage optimistic updates, loading states, and automatic rollback, so consumers just pass a value and an action.</description><pubDate>Mon, 23 Feb 2026 17:00:00 GMT</pubDate></item><item><title>Dynamically Generating PWA App Icons in Next.js 16 with Serwist</title><link>https://aurorascharff.no/posts/dynamically-generating-pwa-app-icons-nextjs-16-serwist/</link><guid isPermaLink="true">https://aurorascharff.no/posts/dynamically-generating-pwa-app-icons-nextjs-16-serwist/</guid><description>Learn how to dynamically generate PWA app icons in Next.js 16 using Serwist. This guide shows how to create environment-specific icons for development, staging, and production environments.</description><pubDate>Tue, 11 Nov 2025 08:00:00 GMT</pubDate></item><item><title>Building an Async Combobox with useSuspenseQuery() and useDeferredValue()</title><link>https://aurorascharff.no/posts/building-an-async-combobox-with-usesuspensequery-and-usedeferredvalue/</link><guid isPermaLink="true">https://aurorascharff.no/posts/building-an-async-combobox-with-usesuspensequery-and-usedeferredvalue/</guid><description>Learn how to create a declarative combobox component using `useDeferredValue()` and `useSuspenseQuery()` for smooth, performant user experiences.</description><pubDate>Thu, 07 Aug 2025 21:22:00 GMT</pubDate></item><item><title>Server and Client Component Composition in Practice</title><link>https://aurorascharff.no/posts/server-client-component-composition-in-practice/</link><guid isPermaLink="true">https://aurorascharff.no/posts/server-client-component-composition-in-practice/</guid><description>Learn how to compose client and server components effectively in React. Explore patterns for keeping responsibilities clear, optimizing performance, and creating reusable components.</description><pubDate>Tue, 05 Aug 2025 10:22:00 GMT</pubDate></item><item><title>Building Reusable Components with React 19 Actions</title><link>https://aurorascharff.no/posts/building-reusable-components-with-react19-actions/</link><guid isPermaLink="true">https://aurorascharff.no/posts/building-reusable-components-with-react19-actions/</guid><description>Learn how to build reusable components with React 19 Actions, track transition states, use optimistic updates, and expose action properties for custom logic.</description><pubDate>Fri, 04 Apr 2025 10:22:00 GMT</pubDate></item><item><title>Managing Advanced Search Param Filtering in the Next.js App Router</title><link>https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/</link><guid isPermaLink="true">https://aurorascharff.no/posts/managing-advanced-search-param-filtering-next-app-router/</guid><description>Learn how to implement advanced search param filtering in the Next.js App Router, utilizing React 19 features like useOptimistic and the library nuqs.</description><pubDate>Thu, 24 Oct 2024 10:30:00 GMT</pubDate></item><item><title>Handling Form Validation Errors and Resets with useActionState()</title><link>https://aurorascharff.no/posts/handling-form-validation-errors-and-resets-with-useactionstate/</link><guid isPermaLink="true">https://aurorascharff.no/posts/handling-form-validation-errors-and-resets-with-useactionstate/</guid><description>The React 19 `useActionState` hook is a powerful tool for creating a state based on the result of an action, typically useful with form submissions. Learn how to create a validated form using the hook, and how to handle form resets and errors with it.</description><pubDate>Fri, 04 Oct 2024 10:30:00 GMT</pubDate></item><item><title>Implementing Feature Flagging with the Next.js App Router</title><link>https://aurorascharff.no/posts/implementing-feature-flagging-with-nextjs-app-router/</link><guid isPermaLink="true">https://aurorascharff.no/posts/implementing-feature-flagging-with-nextjs-app-router/</guid><description>Feature flagging allows you to enable or disable features without deploying new code. Learn how to implement a simple feature flagging solution with the Next.js App Router.</description><pubDate>Tue, 17 Sep 2024 09:30:00 GMT</pubDate></item><item><title>Creating a Reusable SubmitButton with useFormStatus()</title><link>https://aurorascharff.no/posts/creating-a-reusable-submitbutton-with-useformstatus/</link><guid isPermaLink="true">https://aurorascharff.no/posts/creating-a-reusable-submitbutton-with-useformstatus/</guid><description>The React 19 `useFormStatus` hook is a powerful tool for handling form submissions. Learn how to create a reusable SubmitButton that works across multiple forms and enables progressive enhancement.</description><pubDate>Mon, 10 Jun 2024 11:30:00 GMT</pubDate></item><item><title>Rebuilding &quot;Remix Contacts&quot; in Next.js 14 with Transitions, Server Actions and Prisma</title><link>https://aurorascharff.no/posts/rebuilding-remix-contacts-in-nextjs-14-with-transitions-server-actions-and-prisma/</link><guid isPermaLink="true">https://aurorascharff.no/posts/rebuilding-remix-contacts-in-nextjs-14-with-transitions-server-actions-and-prisma/</guid><description>Remix Contacts is Remix&apos;s official tutorial. In this blog post, we&apos;ll rebuild it in Next.js 14 using React Server Components, Server Actions, Transitions and Prisma, and compare the two approaches.</description><pubDate>Fri, 05 Apr 2024 08:22:00 GMT</pubDate></item><item><title>Utilizing useOptimistic() Across the Component Tree in Next.js</title><link>https://aurorascharff.no/posts/utilizing-useoptimistic-across-the-component-tree-in-nextjs/</link><guid isPermaLink="true">https://aurorascharff.no/posts/utilizing-useoptimistic-across-the-component-tree-in-nextjs/</guid><description>The React 19 hook useOptimistic is a powerful tool for building fast and responsive UIs. Learn how to use useOptimistic across the component tree in Next.js with React Context.</description><pubDate>Sat, 24 Feb 2024 15:22:00 GMT</pubDate></item><item><title>Implementing React Hook Form with Next.js 14 and Server Actions</title><link>https://aurorascharff.no/posts/implementing-react-hook-form-with-nextjs-14-server-actions/</link><guid isPermaLink="true">https://aurorascharff.no/posts/implementing-react-hook-form-with-nextjs-14-server-actions/</guid><description>React Hook Form is a popular library for building interactive forms in React. Learn how to use React Hook Form with Next.js 14 and Server Actions.</description><pubDate>Sat, 30 Dec 2023 15:22:00 GMT</pubDate></item><item><title>Running Tests with RTL and Vitest on Async and Internationalized React Server Components in Next.js App Router</title><link>https://aurorascharff.no/posts/running-tests-with-rtl-and-vitest-on-internationalized-react-server-components-in-nextjs-app-router/</link><guid isPermaLink="true">https://aurorascharff.no/posts/running-tests-with-rtl-and-vitest-on-internationalized-react-server-components-in-nextjs-app-router/</guid><description>Learn a method for running tests with Vitest and RTL (React Testing Library) on React Server Components that utilizes internationalization (i18n) via the next-international package.</description><pubDate>Sun, 10 Sep 2023 15:22:00 GMT</pubDate></item></channel></rss>