Hire a Next.js developer who can actually ship production
Vetting guide for founders and PMs: portfolio signals, App Router interview questions, Core Web Vitals checks, and real rate benchmarks for 2026.
Tag
Web performance techniques for Next.js and Sanity — Core Web Vitals, LCP, INP, bundle size, and edge caching strategies.
33 posts
Vetting guide for founders and PMs: portfolio signals, App Router interview questions, Core Web Vitals checks, and real rate benchmarks for 2026.
A practical guide to the Next React stack — React, Next.js, hosting, CMS, and styling — what each layer does, why this combination won, and when to walk away.
Pages Router API routes vs App Router route handlers compared — caching, streaming, edge runtime, and a clear migration path with real code examples.
Hobby, Pro, and Enterprise Vercel pricing explained with real usage line items, per-seat maths, and a realistic monthly total for a mid-traffic marketing site.
Marketing website performance affects conversions, ad ROI, and SEO rank. Here's what the numbers mean in business terms and what to demand from any build.
Static generation, pagination, image handling, and bundle discipline for a Next.js blog that doesn't slow down as content grows. Practical code included.
Pick the right SEO CMS by understanding rendering strategy, structured data support, sitemap control, and editorial workflow. A practical guide for 2026.
Thinking about hiring a web designer? This guide covers portfolio signals, performance questions, and the designer vs developer trade-off. Read before you sign.
Tailwind CSS v4 rewired how teams configure, share, and ship styles. Here's what the CSS-first engine means in practice.
Comparing Mux, Cloudinary, and Bunny Stream for sanity video hosting — upload workflow, adaptive streaming, pricing, and LCP poster handling.
Sanity hotspot not applying to your rendered image? Here are the four real causes and exact fixes for each one.
Step-by-step guide to indexing Sanity content with native Embeddings, running a semantic query, and wiring a debounced search UI in Next.js App Router.
Step-by-step guide to Sanity Mux video playback in Next.js: signed URLs, hls.js adaptive streaming, poster images, and LCP optimisation.
Tailwind v4 migration in Next.js, step by step: the upgrade codemod, CSS-based @theme config, dropped utilities like bg-opacity-*, PostCSS changes, and production gotchas.
Deep dive into advanced GROQ queries in Sanity: inline joins, the coalesce() function, conditional projections, and array flattening with real payload sizes measured.
An honest look at Next.js partial prerendering PPR in production — what it solves, where it breaks, and which page patterns benefit most.
A step-by-step walkthrough of Next.js bundle size analysis and reduction: finding large imports, fixing vendor chunks, and trimming icon libraries.
Using Sanity's auto=format with next/image correctly avoids double-encoding and wasted bytes. Here is the exact setup I use in production.
A practical walkthrough of Next.js bundle size analysis using @next/bundle-analyzer, with before/after numbers from a real project (487 kB to 301 kB).
Step-by-step guide to Mux video hosting in Next.js and Sanity CMS: sanity-plugin-mux-input setup, direct uploads, signed playback URLs, and poster images for fast LCP.
A practical guide to wiring up Vercel Analytics and @vercel/speed-insights/next for real-user Core Web Vitals monitoring in Next.js, with a workflow for catching regressions fast.
A practical Next.js App Router tutorial guide for 2026. Covers layouts, route groups, Server Components, data fetching, static export, and the metadata API.
A step-by-step approach to identifying orphaned Sanity schemas, measuring Studio bundle impact, and safely removing dead document types without breaking production.
A pattern for projecting only the fields your Next.js components actually render, using GROQ's select() and type filters to prune unused blocks from a union array.
A pattern for structuring Sanity references and GROQ projections that eliminates query waterfalls in server components, cutting fetch latency by 200–400 ms.
Cut LQIP overhead on Sanity + Next.js sites to nearly zero using Sanity's built-in metadata.palette instead of inline Base64 blur data. Exact GROQ and component code.
A singleton pattern for i18n navigation that keeps GROQ queries fast, using dynamic field access (field[$param]) instead of string interpolation.
Denormalising references and embedding common fields in Sanity schemas cuts server component render time by 40–60%. Here's the pattern I ship.
Next.js TTFB optimization in practice: Partial Prerendering for the shell, edge runtime for dynamic fragments, and tight GROQ projections — with before/after benchmarks (420ms → 140ms).
Portable Text blocks can bloat client bundles. Here's how I defer serializers with dynamic imports and RSC boundaries to keep marketing pages under 80 kB — and where lazy-loading trades away SEO visibility.
INP is responsiveness. Learn how to find long tasks, profile React re-renders, reduce main-thread work, and ship fast interactions consistently.
LCP is usually one big image. Here’s how to identify the true LCP element, reduce TTFB, ship the right image bytes, and consistently hit <2.5s on real devices.
Core Web Vitals 2026 explained: LCP, INP, and CLS thresholds, how much they really affect Google rankings, field vs lab data, and the fixes that consistently move each metric.