Reeth
Reeth is a modern Indian restaurant and bar. The hero is a split layout: copy on the left and a vertical reel on the right. The reel loops muted while it is on screen, pauses when it leaves, and has play and sound controls. The regional journey pins on desktop and scrubs horizontally, and becomes a swipe carousel on mobile.
All business content lives in data files: the menu, events, reels, gallery, team, catering packages, highlights and the site configuration. The owner can change a price or an event date without touching a component. Forms use react-hook-form with zod. Errors are linked to their inputs, and focus moves to the first invalid field.
The colour palette is locked by unit tests, so every text and background pair is checked against WCAG 2.2 AA. Reduced motion turns off the marquee, parallax, pinning and video autoplay, and keeps opacity fades.
Overview

Progress
- Hero reel player, regional journey, menu, events, catering packages and careers
- Forms with validation, errors linked to fields, and a mocked submission
- Colour palette locked by contrast tests
- End-to-end suites on Chromium and WebKit
- Replace the placeholder details: phone, email, address, hours, prices and events
- Run Lighthouse, which has not been measured yet
- Replace the generated gradient reels with real footage
- A live map: a placeholder card until the address is confirmed
- Real photography and reel footage
- A backend for reservations and enquiries: submission is mocked
- Firefox and real-device testing
How it's built
The business content lives in data files, so menu, events and prices change without touching components.
With reduced motion on, the marquee, parallax, pinning and autoplay all turn off.
AI in the build: 11 of the 15 commits in the Reeth repo were co-authored with Claude Code.
- Hero reel player: muted loop, pauses off screen, with play and sound controls
- Regional journey pinned and scrubbed sideways on desktop, a swipe carousel on mobile
- Business content kept in data files, so menu, events and prices change without touching components
- Forms with field-level errors linked to their inputs, and focus moved to the first invalid field
- Palette locked by unit tests against WCAG 2.2 AA, with a separate night theme for the bar sections
- Reduced motion turns off the marquee, parallax, pinning and autoplay
My Approach




