Jiwon Choi
jiwonchoi.bsky.social
Jiwon Choi
@jiwonchoi.bsky.social
@nextjs.org
Reposted by Jiwon Choi
Next.js 15.3

• Turbopack for builds (alpha)
• Community support for Rspack (experimental)
• Client Instrumentation hook
• Navigation hooks
• TypeScript plugin improvements

nextjs.org/15-3
Next.js 15.3
Next.js 15.3 includes Turbopack for builds, new client instrumentation and navigation hooks, and more.
nextjs.org
April 9, 2025 at 8:41 PM
Reposted by Jiwon Choi
You can pass sub-classed Promises to React such as in use() with the fields status and value or reason.

This allows React synchronously read the value without waiting on a microtask. This is much faster but it also ensures compat when someone needs flushSync().

Microtasks are bad, mkay.
March 21, 2025 at 2:49 AM
Reposted by Jiwon Choi
don’t useEffect, but if you must, don’t call setState in it
November 23, 2024 at 4:20 PM
Reposted by Jiwon Choi
Two things I'm excited about at Vercel right now:

1. Saving developers $$$
2. Improved observability

Turn on in-function concurrency, redeploy, and save ~40-70% on usage.

Plus, more info on cold/hot starts, initial load performance, and more coming soon.

vercel.com/changelog/in...
November 19, 2024 at 8:11 PM
Reposted by Jiwon Choi
My talk from #nextjsconf is now available on YouTube!
Optimizing LCP: Partial Prerendering deep dive (Wyatt Johnson)
YouTube video by Vercel
youtu.be
November 7, 2024 at 5:12 PM
Reposted by Jiwon Choi
Having poor performance with Partial Prerendering with @nextjs.org? Check your code if you're using revalidatePath. This is actually revalidating the entire static shell each time, making things really slow! Instead rely on router.refresh() to update your server component data.
November 12, 2024 at 4:43 PM
Reposted by Jiwon Choi
we’re also gonna introduce a new refresh() api to do this directly from a server action in 15.1 instead of doing this at the client level
Having poor performance with Partial Prerendering with @nextjs.org? Check your code if you're using revalidatePath. This is actually revalidating the entire static shell each time, making things really slow! Instead rely on router.refresh() to update your server component data.
November 13, 2024 at 11:25 AM
Reposted by Jiwon Choi
Random insight: The website was slower because of the theme picker. Why?

The site had a color and background transition (not GPU accelerated) on the theme picker for when a selection is made.

 🧵
November 17, 2024 at 12:23 AM
Reposted by Jiwon Choi
you can just ship things. so i did.
if you have a domain on vercel, it's now even easier to set up your 🦋 handle.
November 15, 2024 at 3:55 PM
Reposted by Jiwon Choi
Excited to support Bluesky’s growth. Domains ftw!
November 16, 2024 at 4:53 PM
Reposted by Jiwon Choi
What are all the reasons "real user metrics" for Core Web Vitals would differ from Google's PageSpeed Insights? I'll start:
- RUM data may include non-Chrome browsers (For LCP and INP they would all be Chromiums)
- Google only counts users who have Chrome sync on and opted into data sharing
November 16, 2024 at 3:53 PM
OSS
November 16, 2024 at 12:46 PM