All work

01Client work, 2026

That’s a Good Idea, But

A book you open by scrolling.

What it is
Narrative site, Frontend
Built with
React, TypeScript, Vite, GSAP / ScrollTrigger, Framer Motion
Where it lives
Pre-launch — runs locally

The best parts

  • The hardcover turns, opens and pulls the camera through page one, all driven by your scroll
  • Dark to paper: the whole palette changes the moment you are inside the book
  • A sideways chapter carousel in the middle of a vertical page
  • No CSS framework. Forty custom properties run the entire design

How it came together

A launch site for a book. You arrive at a hardcover floating in darkness; scrolling turns it, opens it and moves the camera through the first page into the story. Everything after that is paper.

  1. The problem

    A book launch page usually looks like every other launch page — a cover image, a blurb and a pre-order button. Nothing about it feels like the object it is selling.

  2. The approach

    Make the scroll do what a reader would do: pick the book up and open it. The site starts as an object in the dark and becomes paper once you are inside it.

  3. How it’s built

    React and Vite, with GSAP ScrollTrigger driving the book's rotation and opening and Framer Motion handling everything after. No CSS framework — the design system is about forty custom properties. The move from dark to paper is a real change of palette, not a section break.

  4. What shipped

    A launch site that reads as one continuous movement from cover to contents to authors, with the chapter list scrolling sideways in the middle of a vertical page.

  5. What I took from it

    Scroll-driven animation is easy to overdo. The version that worked was the one where the motion matched something physical — turning a cover — instead of moving because it could.