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 actually do, how they combine with x and y, and the three places they save you: centring, responsive slides and horizontal scroll sections.
ScrollTrigger on Mobile: ignoreMobileResize, normalizeScroll and the Address Bar
Why ScrollTrigger animations jump on phones when the address bar hides, what ignoreMobileResize and normalizeScroll really do, and a setup that works alongside Lenis.
Fixing INP in Next.js: Find the Slow Interaction, Then Break It Up
A practical INP guide for Next.js: capture the real slow interaction with web-vitals attribution, then fix it with yielding, transitions and fewer third-party 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.