Writing

Next.js: what we have had to fix

98 write-ups from production, newest first. Each one is a problem hit on a real project and how it was diagnosed and fixed.

98 articles
5 min read

Next.js Metadata API, Sitemaps and Structured Data

SEO plumbing for an App Router site: generateMetadata from one registry, canonical and Open Graph defaults, sitemap.ts, JSON-LD and the checks that catch drift.

Next.jsSEO
6 min read

Next.js 16 typedRoutes Link href Type Error Fix

Next.js 16 build failing with 'Type string is not assignable to type Route' on Link href? Here is why typedRoutes got stricter and the migration that compiles.

Next.jsTypeScript
6 min read

Next.js 16 unstable_cache Migration Build Errors

Next.js 16 build failing after replacing unstable_cache with 'use cache'? Here is why the closure error fires and the exact migration pattern that compiles.

Next.jsReact
6 min read

next/script afterInteractive Blocking INP on Mobile

next/script strategy='afterInteractive' still pushing INP past 500ms on mobile? Here is the lazyOnload, worker, and onLoad fix that drops it back under 200ms.

PerformanceCore Web Vitals
6 min read

CLS From Skeleton Loaders in Suspense Fallback Fix

Cumulative Layout Shift spiking from Suspense skeleton loaders in Next.js 16? Match the skeleton dimensions to real content with a working CSS pattern.

PerformanceCore Web Vitals
5 min read

next/image priority Not Preloading Hero: LCP Fix

next/image with priority not generating a preload link and tanking your hero LCP score? Fix the missing preload hint and PPR boundary issue with code.

PerformanceCore Web Vitals
5 min read

Vercel Speed Insights No Data After Next.js 16: Fix

Vercel Speed Insights showing no data after Next.js 16 upgrade? Fix the missing beacon, CSP block, and the SpeedInsights component placement with code.

PerformanceCore Web Vitals
6 min read

Next.js 16 Image priority Deprecated: Real LCP Fix

Next.js 16 deprecated the priority prop on next/image. Migrate to preload, fix the LCP regression, and stop accidentally preloading every product hero image.

PerformanceCore Web Vitals
6 min read

LCP Preload Hint Picking the Wrong Image: Real Fix

LCP regressed because the browser preloads the wrong image with next/image priority? Fix fetchpriority, srcset, and preload candidate selection with code.

PerformanceCore Web Vitals
6 min read

next/font CLS Layout Shift in Next.js 16: Real Fix

next/font causing CLS layout shift in Next.js 16 after the upgrade? Fix font fallback metrics, size-adjust, and display swap settings with working code.

PerformanceCore Web Vitals
6 min read

Next.js App Router Render-Blocking CSS Fix

Next.js App Router render-blocking CSS can crush LCP when globals and library styles leak into initial chunks. Here is the fix I use on production builds.

Next.jsPerformance
5 min read

Next.js Turbopack Linked Package Reload Fix

Next.js Turbopack linked package reload issues usually come from symlink watching and package transpilation. Here is the 16.2.4 fix path I use today safely.

Next.jsTurbopack
5 min read

GA4 Page Views Not Tracking in Next.js App Router

GA4 page views not firing on client-side navigation in Next.js App Router? Track route changes with usePathname, useSearchParams, and a manual gtag event.

SEOAnalytics
Need this done, not read about?

We take Next.js work on subcontract and direct.

Fixed price for a defined scope, on live sites, with a rollback path. Agencies and in-house teams welcome.

Hire me for Next.js