A network of wellness venues across Rishikesh — hotels, farmstays, and sacred spaces — unified under one digital experience.
Visit live site ↗Brahma Sutras brings together a network of diverse wellness venues around Rishikesh — from boutique hotels and farmstays to yoga shalas and retreat centres — into a single, cohesive digital presence.
We designed a calm, content-led experience that honours the depth of the tradition while helping seekers discover and book the right space for their practice.
Lucid Code Labs delivered a performant, responsive platform with a scalable content structure the client can extend as new venues and offerings join the network.
Brahma Sutras brings together a network of diverse wellness venues around Rishikesh — from boutique hotels and farmstays to yoga shalas and retreat centres — and needed them to live inside a single, cohesive digital presence. The brief was a calm, content-led experience that honours the depth of the tradition while helping seekers discover and book the right space for their practice, sitting on a scalable content structure the client's own team can extend as new venues and offerings join the network. Multilingual delivery was part of the scope, which meant the content model itself — not only the interface strings — had to be translatable.
Each venue is stored with capacity, nightly rate, coordinates, amenities, images and four cover-video variants, alongside a linked set of room categories. Location pages fetch a property with its nested categories in one query, and the booking form renders per-category quantity selectors with a live price summary calculated as quantity times nightly rate times nights.
A sync routine pulls every active iCal feed, parses its events with node-ical and writes them into the same bookings table as direct enquiries, marked as external, so dates blocked on outside listing sites sit on one shared calendar. It runs as an endpoint that is safe to re-run — events are matched on property and external UID, then updated rather than duplicated — with an admin screen for adding and removing feed sources.
next-intl middleware drives locale-prefixed routing across English, Hindi, Spanish, German, Russian, French and Italian, backed by per-locale message catalogues. Properties and facilities carry translated name and description columns, blog posts have full row-level translations in their own table, and the Metadata API emits hreflang alternates alongside a programmatic sitemap covering static, property, post and category URLs in every locale.
Admin CRUD covers posts, categories, tags and authors, with the slug derived from the title and excerpt, word count and reading time derived automatically from the editor output. The editor is Tiptap 3 extended with a custom resizable-image node that stores drag-resized dimensions and alignment in the schema, plus YouTube embeds and syntax-highlighted code blocks; the public reading surface adds pagination, category and tag listings, related posts, a table of contents and a reading-progress bar.
A signing route authenticates upload parameters so the browser uploads media straight to Cloudinary, bypassing server payload limits. An idempotent transformation builder then injects f_auto and q_auto plus sizing into delivery URLs, replacing any existing transform segment rather than stacking one, and a CloudImage component wraps it with a responsive srcSet and lazy loading — including a helper that rewrites Cloudinary URLs embedded in rich-text article bodies.
A shared facilities table holds icons, images and a JSONB services menu of name, description, price and duration, with each text field carried in English plus six translated variants. Facilities join to properties through a many-to-many table with a sort order, an 'included' flag and a free-text note, so the same spa or yoga hall can be listed as included at one venue and simply offered at another.




