PAUSA Café
PAUSA is a calm, editorial café with slow coffee, matcha, wood-fired pizza and an all-day diner menu. The site is built with Vite, React 18, TypeScript in strict mode, Tailwind CSS 4, GSAP, Framer Motion and Lenis.
Every route is prerendered into static HTML with a headless browser. Search engines and link previews get the real content without running JavaScript. Each route has its own title, description, canonical and social tags, and the home and visit pages carry CafeOrCoffeeShop structured data. A sitemap and robots file are generated from the same route list the app uses.
The brand films are encoded with size limits that fail the build when a file is too large. A video loads only when it is near the viewport. Under reduced motion, on data saver or on a slow connection, no video element is created, and the poster and transcript stay on screen.
Overview

Progress
- Pre-launch and open modes behind one setting
- Menu, gallery, events and visit pages, all driven by data files
- Prerendered HTML for every route, with a sitemap and robots file
- Brand films encoded within size budgets
- End-to-end smoke tests for every route on desktop and mobile
- Get written permission for the photos. The barista photo needs separate consent
- Clear the TODO markers in the source (search for TODO)
- Switch to open mode with prices and reservations at launch
- Live open-now status and menu prices: hidden until launch
- Online reservations: removed in pre-launch mode
How it's built
One launch setting switches the site from a pre-launch page to the full open site.
Every route is prerendered to static HTML.
No video loads under reduced motion, on data saver or on slow connections. The poster image stays.
AI in the build: 2 of the 8 commits in the PausaPune repo were co-authored with Claude Code.
- Launch switch: one setting moves the site from a pre-launch page to the full open site with prices and reservations
- Every route prerendered to static HTML, so search engines read the content without running JavaScript
- Video fallbacks: no video loads under reduced motion, data saver or slow connections, and the poster stays
- Menu, gallery and events are data files, so the team can edit them without touching components
- Open-now status calculated on India time and never prerendered, so it cannot go stale
- Skip link, one heading per page, focus moved on route change, and focus-trapped lightbox and mobile menu
My Approach




