🍿 Did you know there are Four Levels of Caching in Next.js?

Hey friend,

Did you know there are 4 levels of Caching in Next.js? Next.js caches for different reasons.

In today's newsletter, we're diving into the world of Next.js caching – a powerful feature that can significantly improve your application's performance.

But before we dive into the newsletter,

Here is a quick annoucement,

I'm running a exclusive live workshop on Next.js. It will be 3-4 hours long. I'm ironing out the final details.

​You can check the landing page here ↗️. It will make you a more confident Next.js Dev and will teach you how to build production-ready apps.

We won't be shying from complex topics and diving into them all. If you are interested, you can click the below button to join the waitlist.

The waitlist gets first dibs and special launch bonuses and discounts.

--

Anyway, back to our newsletter.

If you prefer watching a video instead on the 4 Levels of Caching, then check out this video right here ↗️ else keep reading.

video preview​

​


🍿 Our Weekly Snack: Caching in Next.js

Next.js offers a multi-layered caching system that helps you deliver content faster to your users.

Now, What is Caching? Caching is like having a box of your favorite cookies 🍪 at the ready, so you don't have to wait to bake them every time you want one.

⏩ The job of Next.js Caching system is to speed up data retrieval by storing frequently accessed data in a faster location.

Let's break down the 4️⃣ key players.

Here is a quick diagram,

🔂 Request Memoization

Imagine your app constantly bombarding the client with the same questions. Request memoization prevents this by caching function calls on the client-side.

This means if your app needs the same data twice, it can retrieve it from the cache instead of making another request. We can achieve the same with memoization in React.

🗂️ Data Cache

This is where things get interesting 🧐.

Next.js automatically caches data fetched from the server.

By default, this cached data can live forever (or at least until the next ice age).❗️ But fear not! You can configure the data cache to revalidate itself at specific intervals, ensuring your users always have the latest information.

Additionally, you can completely invalidate cached data if needed.

💾 Router Cache

This cache, stores the payloads of your React Server Components on the client-side.

This way, when users navigate between pages, Next.js can render the page from the cache, reducing the number of requests needed to the server.

🌏 Full Route Cache

React Server Component payload split by routes and HTML on the SERVER. It skips sending new requests if RSC Payload is in Router Cache because why would it?

A cache's job is to make sure to check if the app has everything it needs so it checks to see if we already have the data. But, if not, it will fetch it. This is what Full Route Cache does.

Now, you might be wondering, "Can I turn caching off?"

Absolutely! For situations where you need fresh data every single time, Next.js provides the cache: 'no-store' option to disable caching for specific routes. This can be page or request level.

Keeping your cached data fresh is crucial depending on your use case.

Next.js offers the revalidate and revalidatePath functions to invalidate cached data and ensure your users see the latest updates ✨.

Want to learn more? Check out my Youtube video which covers the same with in-depth practical examples ↗️.

To wrap up, by effectively leveraging Next.js caching, you can create blazing-fast applications that deliver a seamless user experience ⚡️.


🤫 Latest Frontend News

If you’ve been feeling discouraged about the future of software engineering because of AI products like Devin, you need to watch this video ↗️ 🤝

🐞 Chrome added Support for Error.cause in Chrome DevTools, you can view it here ↗️.​

🎨 Easy-to-use CSS ↗️ View Transitions API helpers for Next.js App Router are here.

🎉 Exciting news! Next.js 14.2 has arrived.
​
Dive into the official docs ↗️ to see all the updates, or 🎥 watch this video ↗️ for a bite-sized overview of what's new and what to watch out for before upgrading.

​Supabase is now GA 🚀 ​
It is a Postgres developer platform. I really love Supabase and my entire Next.js crash course ↗️ uses it for storing all products and images so I'm really excited for it's launch.

😮 React 19 is right around the corner​
The React team is creating a minor update with all the warnings we may get while we upgrade, check the PR here ↗️​


Weekly Youtube Videos 🎥

Ultimate Next.js Crash Course with Supabase, Zod, TS, Tailwind 🔥

video preview​

5 Common Mistakes Slowing your Next.js Apps ❌

video preview​

The Frontend Developers Toolbox 🧰

A Frontend Newsletter that you'll love! 💖