Writing
Notes from building production sites — the problems that came up often enough to be worth writing down.
GSAP xPercent vs x: Centring, Responsive Moves and Horizontal Scroll
What GSAP's xPercent and yPercent do, how they combine with x and y, and where they help most: centring, responsive slides and horizontal scroll.
ScrollTrigger on Mobile: ignoreMobileResize, normalizeScroll and the Address Bar
Why ScrollTrigger animations jump on phones when the address bar hides, what ignoreMobileResize and normalizeScroll do, and a setup that works with Lenis.
Fixing INP in Next.js: Find the Slow Interaction, Then Break It Up
A practical INP guide for Next.js: find the real slow interaction with web-vitals attribution, then fix it with yielding, transitions and fewer scripts.
How I Build GSAP ScrollTrigger Animations Without Killing Performance
Why scroll animation drops frames, which properties are safe to animate, and how to wire ScrollTrigger into React without leaking triggers on every re-render.
WordPress vs Next.js for Agencies: Choosing the Right Stack in 2026
A build-side comparison for agencies: what each stack costs to build, hand over and maintain — and the questions that actually decide it.
Core Web Vitals for Next.js in 2026: A Practical Checklist
The Next.js-specific causes of poor LCP, CLS and INP — and the fixes that actually move the numbers, including what changed in Next 16.