Kaavyam
Kaavyam is a café, restaurant and bar in Ravet, Pune. The home page uses an editorial layout: a large headline, a hairline-framed photograph and a smaller overlapping photo, with the opening hours for the café, restaurant and bar set out below. The Events, bar and footer sections switch to a night theme, controlled by a single data attribute.
The site covers the menu, events, reels and gallery, about, catering, careers and contact. The reservation and enquiry forms are validated with react-hook-form and zod and show error and success states. Submission is mocked until a backend is connected.
Accessibility is checked in the test suite. Every route is tested at seven viewport sizes for horizontal overflow and console errors, and axe checks WCAG 2.2 AA on every route, in Chromium and WebKit.
Overview

Progress
- Editorial home page with hours for the café, restaurant and bar
- Night theme for the evening sections
- Menu, events, reels, gallery, about, catering, careers and contact pages
- Reservation and enquiry forms with validation and mocked submission
- Unit tests, responsive checks across viewport sizes, and axe accessibility checks
- Improve performance: Lighthouse scores were 47 to 80 on the measured pages, and the home page is the slowest
- Replace the illustrative menu prices and event dates with confirmed ones
- Connect the forms to a backend
- Team portraits and approved guest quotes: monogram placeholders for now
- Full address and phone number: placeholders until the owner confirms them
- Firefox testing
How it's built
A night theme is switched by one data attribute, covering the Events section, the bar band and the footer.
axe checks against WCAG 2.2 AA run on every route, in Chromium and WebKit.
AI in the build: 2 of the 2 commits in the Kaavyam repo were co-authored with Claude Code.
- Editorial hero with an asymmetric photo layout, not the usual centred template hero
- Night theme for Events, the bar band and the footer, switched by one data attribute
- Reservation and enquiry forms with field errors, a success state and a mocked error path to test against
- Every route tested at seven viewport sizes for layout overflow and console errors
- axe checks against WCAG 2.2 AA on every route, in Chromium and WebKit
- Per-route titles and Open Graph tags, with JSON-LD for CafeOrCoffeeShop and Restaurant
My Approach




