WELCOME

ALI ABBAS CHADHAR

Software Engineer · Full-Stack Developer

Initializing environment0%

Product Landing

Two Good

A clean, conversion-focused landing experience inspired by modern product storytelling and smooth section-based animations.

Overview

Two Good Co sells premium candles with a social mission. The recreation challenge was to capture their emotional brand story through scroll-driven narrative sections and GSAP-powered kinetic type.

Challenge

GSAP's ScrollTrigger conflicts with Next.js server components because it accesses window during module evaluation. Integrating it safely required careful dynamic imports and hydration sequencing.

  • GSAP + SSR — module-level window access crashes the build
  • Kinetic typography — letter-spacing animations needed pixel-precise timing per section
  • Parallax images — multi-layer depths without hurting CLS

Solution

  • Wrapped all GSAP initialization in useEffect with dynamic(() => import('gsap/ScrollTrigger'), { ssr: false })
  • Built a useSplitText hook that registers characters as individual spans after hydration
  • Used transform: translateY on image wrappers (compositor-only) with negative overflow hidden on parent for the parallax illusion

Outcome

Fully accessible (WCAG AA) despite being animation-heavy. Tab navigation works through every interactive element. Lighthouse score: 94 Performance, 100 Accessibility.

E-Commerce / BrandingIndustry
Campaign PageProject
Two Good screenshot 1
01
Two Good screenshot 2
02
Two Good screenshot 3
03
Two Good screenshot 4
04
Two Good screenshot 5
05
Two Good screenshot 6
06
Two Good screenshot 7
07

Let’s build something together. Make your next product scalable, fast, and user-centric.

Schedule a free engineering consultation call or email me directly to discuss your requirements.

Book Free Consultation Call