Edward Wilson - Growth Marketer

Designer & Developer

2025

Overview

Client wanted "premium but not try-hard" which is honestly the hardest brief to nail. Built it on Next.js App Router and spent way too long obsessing over animation timing curves. You know that feeling when an animation is 0.1s too slow? Yeah, I can't unsee that now.

Went with a strict light-mode design because dark mode would've clashed with their brand. GSAP + ScrollTrigger for the scroll animations, Lenis for that buttery smooth scrolling (seriously, once you use Lenis you can't go back to normal scrolling). The magnetic hover effects took embarrassingly long to get right but they're satisfying as hell.

The whole point was restraint, not adding features just because I could. Every animation, every hover state, every bit of spacing had to earn its place. In a world where everyone's throwing particles and 3D stuff at you, sometimes less really is more. The client loved it, which is all that matters.

Key Highlights

  • 01

    Next.js 16 + React 19, had to figure out some App Router quirks but worth it

  • 02

    Lenis scroll integration (fought with it for hours, now it's my favorite library)

  • 03

    Custom magnetic hover components I can actually reuse now

  • 04

    Light-mode only design system, harder than it sounds to make it not boring

  • 05

    Data-driven architecture so they can update content without touching code

Technologies

Next.jsReactTypeScriptGSAPTailwind CSSLenis