Next.js Daily: App Shell Rendering and Turbopack Optimizations
Major progress on app shell rendering capabilities with staged shell recovery for navigation and build-time scenarios. Significant Turbopack performance improvements through task input optimizations and runtime size reductions.
Duration: PT2M21S
Transcript
Good morning, it's June 4th, 2026.
The biggest development is a complete app shell rendering system now landing across multiple pull requests, fundamentally changing how Next.js handles prefetched and cached navigation.
The core breakthrough centers on staged shell rendering. PR 93801 introduced app shells in runtime prefetches, allowing the router to recover session-only shells from navigation requests using byte offsets. This builds into PR 94441, which extends shell recovery to static navigation scenarios, and culminates in PR 94442 enabling shell extraction during build time itself. The system works by delaying static parameters and root parameters until specific render stages, then capturing the shell content before dynamic data resolves. This creates a smoother navigation experience by showing meaningful UI immediately while streaming updates.
Turbopack saw substantial optimization work focused on task input performance. PR 94202 replaced derive macros with a new task input proc macro, reducing the Next.js SWC binary size by nearly 300 kilobytes through better handling of non-local values. PR 94213 followed up by making task input resolution inlinable everywhere, eliminating 592 function pointer trampolines and saving an additional 371 kilobytes. These changes directly impact build performance since task input resolution runs on every Turbopack function call.
Runtime efficiency also improved. PR 94376 conditionally includes top-level async support, reducing runtime size by roughly 10 percent when async modules aren't needed. PR 94372 similarly extracts worker helpers from the default runtime, shipping them only when workers are actually imported.
Several infrastructure improvements landed, including React upgrades to the latest upstream builds and fixes for build hangs when synchronous IO aborts during rendering, as addressed in PR 94365.
Looking ahead, the app shell work enables more sophisticated prefetching strategies, while the Turbopack optimizations should make development builds noticeably faster. The runtime size reductions will benefit every Next.js application.
That's your Next.js update for today.