🍿 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
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,...

Removing console logs

Hey friend, I've been heads down building this thing for months, and I'm both nervous and *stoked* to finally share it with you. It is The Modern Full Stack Next.js Course which is dropping on November 25th 💥. It is a course that teaches you to build and deploy production-ready Next.js apps. Less than 10 days to go, WILD !! 😬 Look, I know there are tons of courses out there, but I wanted to do something different. I actually built my own *custom course platform* from scratch because, well,...

Hey friend, AI has revolutionized how we should build products. Instead of being scared of it, I'd suggest trying out a bunch of tools and seeing what you like to make you more powerful, I mean productive :P. I mean, I built this Full Stack Splitwise app from scratch using just prompts and AI – no coding skills required! My Tech Stack - Next.js, ShadCN, Clerk, and all the bells and whistles. I'm blown away 🤯. I also gave AI my design vision and it designed this beautiful app for me! If you...