Streaming in the Next.js App Router: A Practical LCP Strategy
How streaming, Suspense boundaries, and the App Router change the way you protect Largest Contentful Paint on real production pages.
Practical write-ups on performance engineering, frontend architecture, and technical SEO - the decisions behind shipping fast, durable web applications.
How streaming, Suspense boundaries, and the App Router change the way you protect Largest Contentful Paint on real production pages.
Server Components are not server side rendering. A precise mental model of the boundary, serialization, and where your code actually runs.
When the edge runtime is worth it, when the Node runtime is the right call, and the API and library constraints that decide it for you.
How satisfies and as const work together to keep literal types precise while still validating shape, with patterns from real codebases.
Tailwind v4 moves configuration into CSS with the theme directive. What changes, what the migration looks like, and how tokens get simpler.
How the layout prop and shared layout animations work under the hood, why they are smooth, and the pitfalls that cause janky transitions.
Interaction to Next Paint is a far stricter responsiveness metric than FID. Why React apps are exposed, and the patterns that fix it.
Container queries let components respond to their own size, not the viewport. How to adopt them safely and where they replace media queries.
A command palette is a focus and keyboard problem before it is a search problem. How to build one that screen readers and keyboards handle correctly.
Treating SEO as engineering infrastructure rather than a marketing checklist. Rendering, metadata, structured data, and the crawl as a system.
Designing internationalization in the App Router: locale routing, message loading, and getting right to left layout correct from the start.
Schema as the single source of truth: composition, transforms, branded types, and keeping validation boundaries honest in big codebases.
How useOptimistic and the new form actions change optimistic updates in React 19, with patterns for rollback and reconciliation that hold up.
A pragmatic Turborepo layout: package boundaries, the task graph, caching that actually hits, and avoiding the mistakes that slow teams down.
Generating dynamic social cards with next/og: how the rendering works, caching strategies, font handling, and keeping it fast across many routes.
Both run server code in Next.js, but they solve different problems. A clear decision framework for mutations, APIs, and everything in between.
A token system is an architecture, not a color list. The three layer model of primitive, semantic, and component tokens, and why it scales.
Where AI coding tools genuinely accelerate frontend work, where they quietly cost you time, and how to build a workflow that keeps you in control.
Scroll timelines and view timelines let the browser run scroll animations off the main thread. How they work and where they replace JavaScript.
An honest production comparison of Vercel and self hosting Next.js: what you get, what you give up, and how to decide based on your real constraints.