Writing

Notes from building production sites — the problems that came up often enough to be worth writing down.

6 min read

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.

GSAPAnimationCSS
9 min read

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.

GSAPScrollTriggerMobile
8 min read

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.

Next.jsPerformanceCore Web Vitals
8 min read

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.

GSAPScrollTriggerPerformanceReact
11 min read

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.

WordPressNext.jsAgencies
7 min read

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.

Next.jsPerformanceCore Web Vitals