You do not need a third-party screenshot SaaS to get branded social preview cards. Here is how to generate dynamic Open Graph images natively in Next.js.
Most Next.js tutorials make Server Components look like an all-or-nothing rewrite. Here is the exact mental model I use to decide where 'use client' belongs.
This site's mobile Total Blocking Time was 670ms, and the biggest single cause was the JavaScript animation library powering some fade-ins. I removed it, rebuilt every effect with CSS and a 20-line scroll observer, and TBT dropped to 170ms — with the animations looking identical. Here's the exact technique, copyable, plus the two tests that make sure the win never quietly reverses.
The React Compiler is stable and built into Next.js 16, but it is still opt-in. Here is what it does, when I would turn it on as a solo dev, and where I still write useMemo by hand.
I upgraded this site to Next.js 16 — Turbopack builds, Promise-shaped params, and a partial-rendering behavior change that quietly turned one of my security assumptions false. Here's the real upgrade: what broke, what was a non-event, which headline features I deliberately didn't adopt, and the habit that caught the subtle stuff.