🍿 Partial Pre-rendering Deep Dive


Hey friend,

A few weeks ago I hosted a workshop on Next.js and the workshop was a hit. Towards the end of the workshop, this is all I could hear,

" loved this "

" learned so much "

" increase the price "

" create one more "

" create a community so we can be your cheerleaders "

🥹🥹🥹

I also loved connecting with so many of you and teaching live. After a lot of us went remote, it felt like I'm creating content in the void but this workshop makes it very real.

More importantly, I had fun and you had fun.

Waitlist for Upcoming Next.js Course 🔥

I'm working on a self-paced Next.js course 🤫.

Now, If you sign up to the workshop, you get access to the course for free which is what I'd recommend 🎁.

I'll be selling the course in Early access which means you'll get access to the course modules as they become available and you will get hefty discounts until it's fully created.

I'd highly recommend you to sign up to the waitlist if you want to level up your Next.js skills.

>>>> Click here ↗ to add yourself to the waitlist.


🍿 Our Weekly Snack: Partial Pre-rendering

Up until now, we knew about Static and Dynamic Rendering. Just a quick refresher,

Static Rendering means your page is fully static for example, a blog.

Dynamic Rendering means you have dynamic parts to your page i.e. interactivity, for example, users can upvote your blog post, add comments etc.

So What is Partial Pre-rendering? (PPR)

PPR is a method of getting the best of both worlds - Static as well as Dynamic rendering. In static, we want to download all the blogging data in advance since all our content is static i.e. doesn't change.

In Dynamic, let's say that same site has ability to upvote the blog post as well as add comments which makes it dynamic.

However, majority of the apps require a mix of the two just like the blogging app we discussed.

⚠️ Most routes are not fully static or dynamic.

That's where PPR comes in play.

In PPR, the static parts of the page are cached already so will come from the CDN known as the shell leading to a faster page load.

Then, the dynamic parts will asynchronously get downloaded once the server is ready with the data.

🚨 Please note that PPR is truly an experimental technology that is not yet recommended for production use.

How does that work?

Well, PPR uses React suspense ↗️ to defer rendering dynamic parts of the app.

The shell leaves holes for dynamic content where we can add a Loading Suspense Boundary so user sees a skeleton loading state.

🤔 What is a Suspense Boundary? <Suspense> lets you display a fallback until its children have finished loading.

The async parts are streamed in parallel.

How to enable PPR?

🤫 Latest Frontend News

Bundlephobia helps you find the performance impact of npm packages, check it out here ↗.

ShadCN UI Library now has Charts 📈 - you can copy paste blocks of code directly in your apps. This is huge!

What!! A framework-agnostic tool that converts any layout into a drag-to-swap one with just a few lines of code? Here is the landing page ↗

Want Type safe Server Actions in your Next.js (App Router) project? next-safe-action ↗ handles your Next.js app mutations type safety, input validation, server errors and even more!

Is it time for Next.ts? There is now support for next.config.ts file in Next.js 15 RC. This file earlier was next.config.mjs. Check the tweet visual here ↗

💖 Weekly Youtube Videos

Check it out and subscribe to my channel ↗️ for more Frontend, Leadership and Career Development content.

Build and Deploy a Full Stack AI Todoist Clone: Next.js, Convex & TypeScript

video preview

How does React Compiler ACTUALLY work?

video preview

What do you think of today's Newsletter? Simply click on one of the links below.

🔥 😐 👎

Ankita Kulkarni

Join 6000+ subscribers reading by weekly personalized Newsletter that helps developers level up their skills through weekly Frontend and Leadership Snacks. You get a deep dive into a Tech topic, Actionable tips to excel in your career and a toolbox!

Read more from Ankita Kulkarni
video preview

Hey friend, Many of you told me that you don't have time to go through the Next.js Hot Tips course that teaches you the best practices of building Next.js apps, which is why I've compiled this cheat sheet to give you. Grab the free Cheatsheet 🎁 As a special bonus, you can grab the cheatsheet for free here ↗️. It would not be fair if I don't share this deal I'm running on my site. The Modern Full Stack Next.js Course is having a Black Friday sale 🎈 (along with Purchase Power Parity Pricing)...

saying No

Hello Reader, As an Engineering leader, you are going to get requests all the time. So you need to prioritize how you are going to manage that. According to a study by McKinsey, leaders who set clear priorities for their teams see a 25% increase in overall productivity. You might have to say ‘no’ to your direct team or product leaders or might have to say no to priorities. In Leadership, saying no means 'not right now', but let's work together to figure out 'when.' While setting priorities,...

Hello Reader, So, React got really confusing... 😅 Remember when things were way simpler before these Meta frameworks came along. Even the React docs recommend to use a Meta framework and Next.js was the recommended one for the longest time. Now, Next.js has not just one but *TWO* Routers. Not to mention the overwhelming number of updates between Next.js versions as well as breaking changes to keep up with. I don't blame you if you are frustrated. After 15+ years of building and scaling apps...