How uyentnm/s42-films-website works
S•42 is a private-facing film-slate website: visitors enter through the home experience, browse a seven-film slate and individual treatments, and must pass an access-code gate to view protected pages. The access workflow is supported by sampled form, API, proxy, and token-helper code. The tree documents seven film routes, but their page implementations and the landing-page composition were not sampled, so those connections are shown only where source evidence supports them. The README is a generic Next.js starter and documents no additional product capabilities.
Main entry points: app/page.tsx Home page · SmokeHero.tsx Smoke hero · access/page.tsx Access page · proxy.ts Access proxy
Components 19
Slate experience
- Home page
src/app/page.tsx - Smoke hero
src/components/landing/SmokeHero.tsx - Film index
src/components/landing/FilmIndex.tsx - Manifesto
src/components/landing/Manifesto.tsx - Liquid smoke canvas
src/components/motion/LiquidSmokeCanvas.tsx - Slate media assets
public/images - Hero video assets
public/video
Film treatments
- Film slate data
src/data/films.ts - Film treatment pages
src/app/films
Private access
- Access page
src/app/access/page.tsx - Access form
src/components/access/PrivateAccessForm.tsx - Access API
src/app/api/access/route.ts - Access proxy
src/proxy.ts - Token validation
src/lib/siteAccess.ts
Shared runtime
- Root layout
src/app/layout.tsx - Site navigation
src/components/navigation/Header.tsx - Smooth scrolling
src/components/motion/SmoothScroll.tsx - Scroll state hook
src/hooks/useLenis.ts
Other components
- Visitor
Connections 17
- Visitor → Home page: opens
- Visitor → Access page: requests access
- Smoke hero → Film slate data: reads slate
- Smoke hero → Film treatment pages: links to
- Home page → Film index: renders
- Home page → Smoke hero: renders
- Home page → Manifesto: renders
- Access page → Access form: renders
- Access form → Access API: posts code
- Access API → Token validation: validates code
- Access proxy → Token validation: checks token
- Access proxy → Access page: redirects to
- Root layout → Site navigation: renders
- Root layout → Smooth scrolling: wraps pages
- Site navigation → Scroll state hook: reads scroll instance
- Liquid smoke canvas → Slate media assets: loads logo image
- Smoke hero → Hero video assets: uses hero video