PLAY PODCASTS
The Philosophy of Next.js
Episode 183

The Philosophy of Next.js

Sam and Ryan discuss the core values of the Next.js framework, and how those values motivate several of the framework’s design decisions. They talk about caching, why layouts don’t have access to the URL, and why the router doesn’t expose navigation events, as well as how developers should think about extending Next’s functionality with their own application code.

Frontend First

March 22, 20241h 16m

Audio is streamed directly from the publisher (cdn.simplecast.com) as published in their RSS feed. Play Podcasts does not host this file. Rights-holders can request removal through the copyright & takedown page.

Show Notes

Sam and Ryan discuss the core values of the Next.js framework, and how those values motivate several of the framework’s design decisions. They talk about caching, why layouts don’t have access to the URL, and why the router doesn’t expose navigation events, as well as how developers should think about extending Next’s functionality with their own application code.

Topics include:

  • 0:00 - Intro
  • 2:58 - Why don’t layouts re-render in Next.js?
  • 7:10 - Push-based vs. pull-based rendering
  • 8:56 - Thinking about re-renders in a pure React app
  • 11:07 - Why Server Actions need to call the revalidate* APIs
  • 12:26 - Why doesn’t Next.js pass the request to every page and layout?
  • 31:40 - Immediate-mode rendering vs. “Do the least amount of work possible”
  • 51:54 - Is opting-in to more re-renders framework fighting?
  • 53:44 - Helping users by communicating the philosophy
  • 56:25 - Why doesn’t Next.js expose global router events?
  • 1:00:17 - Why it’s important to understand Next’s design decisions when choosing it for your next project