back to home
// notes
Writing
Short notes on engineering, design, performance, and the work behind the work. Updated every couple of weeks.
- I rebuilt my portfolio in <50KB of JavaScriptKilled Three.js, GSAP, Lenis, postprocessing, splitting, and canvas-confetti. Site dropped from ~800KB JS to under 50KB. Here's what I kept, what I cut, and the perf math.
- INP is the Core Web Vital that finally tells the truthFID was a polite lie. INP measures interaction responsiveness across the full page lifetime, and it is harder to fix. Here's how I think about it on production sites.
- App Router vs Pages Router in 2026: where each still winsThree years after App Router shipped, the answer is no longer 'just migrate'. Here's how I decide which router belongs on which project, and how I plan migrations.
- Design tokens as code: the architecture I keep coming back toToken taxonomy, naming, theming, and the boring middleware that makes Figma variables and CSS custom properties stay in sync. Six years of patterns I have stopped questioning.
- Shopify Plus checkout extensions: a freelancer's playbookCheckout UI Extensions, Functions, and Pixels — how I scope, build, and ship checkout customization without violating PCI scope or wrecking conversion.