HomeWorkAbout
[04]VMLCorporate Platform2024 — 2025
GRACE

GRACE

Corporate website for a Portuguese sustainability association. Next.js 15 App Router with React 19, full GraphQL codegen pipeline from DatoCMS schema to typed component props, CMS-driven section composition, Mux video streaming, newsletter via Resend, and on-demand ISR. Storybook for component dev, Playwright for cross-browser E2E testing.

[About]

This project was where I pushed the CMS-driven component system to its most mature form. Every page is composed from typed section blocks in DatoCMS, and I built the full GraphQL codegen pipeline so that component props are generated directly from the content schema — zero manual type definitions. When editors add a new section type in the CMS, the TypeScript interfaces update automatically at build time. I managed all component variants through class-variance-authority (CVA), which keeps style permutations typed and predictable. Instead of scattered conditional classes, every visual variant is declared in a single config — size, color, layout — making the design system self-documenting. On-demand ISR handles content freshness without full rebuilds, and Mux powers video streaming with adaptive bitrate. This was also the first project where I introduced Storybook and Playwright as standard tooling from day one — not retrofitted later. Components are developed and reviewed in isolation in Storybook, and Playwright runs cross-browser E2E tests on every PR. It changed how the team ships: fewer visual regressions, faster reviews, and confidence that what works in Storybook works in production.

[Stack]

01Next.js02TypeScript03DatoCMS04GraphQL05Tailwind CSS06GSAP07Framer Motion08Radix UI

[Gallery]

01 / 03
Hero
View Live