Website for hotels & stays
Jharokha House
A website for a 22-room haveli hotel in Udaipur
Jharokha House is a sample brief. We imagined a 22-room restored haveli on Gangaur Ghat in Udaipur's old city, whose guests fell for it on arrival but couldn't feel it from a listing page, and asked ourselves what we'd build for them. The haveli is imaginary. The website isn't: we designed and engineered it, and you can use it right now, below.
- IndustryHotels & stays
- Year2026
- Runs onWeb
- DisciplineWebsites & web apps
- Built aroundRazorpay, UPI, WhatsApp Business API, STAAH, Google Hotel Ads, GST invoicing

A sample brief, a real product. We wrote this brief ourselves. The business is imaginary; the product is not: we designed and engineered it, and you can use it below. We publish results only for work a client has let us verify, so this page shows none.
The brief
We imagined a merchant's haveli from the 1780s on the east bank of Lake Pichola, restored over six years with lime plaster and turned into a 22-room hotel with a rooftop restaurant facing the sunset. The people looking at it are couples planning a trip, families, wedding planners and international travellers, most of them on a phone, many of them deciding between this and a dozen other heritage hotels in the same lanes.
Its rooms are all different, its lane can't take a car, it has no lift, and it does its best business by WhatsApp. We wanted a site that sells the feeling of the place and is honest about the practical details.
- 22 rooms in six categories, from ₹5,800 to ₹18,500 a night
- A rooftop restaurant open to non-residents
- Small weddings using the roof, courtyard and ghat
- Guests from across India and abroad, booking months ahead
The problem
Heritage hotels in Udaipur tend to look alike online: stock photos of the same lake, the same maroon and gold, and a booking widget that hands guests off to a third-party engine before they've understood the rooms. The details that decide a stay, such as stairs, the walk from the car, or why the same room costs 5% GST on Tuesday and 18% on Saturday, are buried or missing.
Enquiries arrive on WhatsApp anyway, without dates or guest counts, and the team spends the evening asking the same questions back.
- Rooms differ a lot but are listed as interchangeable
- GST slabs change night by night around ₹7,500 and confuse guests
- Getting to the door is the most common worry
- WhatsApp enquiries arrive without the details needed to quote
The approach
We made one memorable moment and kept everything else quiet. The first screen is the haveli drawn from the water, and its 22 windows, one per room, light up as dusk falls, following today's sunset in Udaipur. Every other image on the site is drawn in the same style, framed in the cusped arch of a Mewar window, with a palette taken from the lake at dusk rather than from royal maroon and gold.
Underneath, the site is practical. Availability shows every night's rate and GST slab, offers apply themselves, and every request can continue on WhatsApp with the dates, room and total already written in. We gave the last 200 metres, the stairs and the policies their own plain-spoken pages.
- Hand-built SVG illustration in one consistent style, no photographs
- Lake-at-dusk palette: lime plaster, Pichola indigo, lamp marigold
- Night-by-night pricing with GST worked out per slab
- WhatsApp as a first-class path, not an afterthought
- Phone-first layouts, with the hero working as a poster at every size
What shipped
- Watch dusk fall over Lake Pichola: the haveli's 22 windows light one by one as you scroll or drag, tied to today's sunset time in IST
- Check availability for any dates and guests, with night-by-night rates for all six room types
- See GST worked out per night: 5% at ₹7,500 or less, 18% above, split as CGST and SGST
- Monsoon, long-stay and early-booking offers applied automatically when your dates qualify
- Request to book, or continue the same booking on a WhatsApp-style chat
- Pay the first night in a Razorpay-style checkout with UPI, card or netbanking
- Download a booking summary and an .ics calendar file for the stay
- Request experiences, a rooftop table, a private dinner or an airport pickup
- Send a wedding enquiry with dates, guest numbers, functions and budget
- Browse an illustrated gallery and an illustrated map of the last 200 metres to the door
Under the surface
How it is built
In production we'd build this as a static-first Astro site with room, offer and content data in Sanity, so the team can edit room notes, menus and policies themselves. Live availability and rates would come from the hotel's channel manager (STAAH or eZee) through a small serverless layer that also computes GST per night and caches results. Booking requests and first-night payments would go through Razorpay with webhooks writing to the channel manager, and confirmations would go out as WhatsApp Business API templates. The same rate data would feed a Google Hotel Ads price feed.
- The dusk scene is one parametric SVG drawn in code, with colours driven by CSS custom properties, so it stays light and sharp at any size
- Pricing, offer and GST rules live in one shared module used by the site, the confirmation messages and the summaries
- Hash routes in the demo map to static pages in production, each with its own metadata for search
- All state is held in memory, with browser storage used only as an optional convenience
- Reduced-motion users get the finished scene without animation
Considered and turned down
We considered embedding the channel manager's hosted booking engine in an iframe, which is the usual route. We turned it down because it breaks the site's look at the most important moment and hides night-by-night GST, so we'd call its API and keep the booking flow on the hotel's own pages.