Zero bookings on 2,000 monthly visitors — now 30 a month, and a second property

Before, and after
2,000 visitors a month. Zero bookings.
- A Shopify store drawing 1,000–2,000 visits a month and converting none of them.
- In the owner's words, guests did not trust it enough to put a card in — so the traffic was already there and being wasted.
- 15–25% of every actual booking left as commission before the resort saw any of it.
- The guest belonged to the portal. A booking arrived as a reference, not as a customer the resort could contact again.
- With no working direct channel, a change in one portal's ranking could move a month's occupancy.
Two or three, then five, eight, ten, thirty
- Bookings began at two or three a month, then five, then eight, ten, thirty — on the same traffic that had been converting nothing.
- Seven room types with live availability, bookable directly and paid through Razorpay.
- A direct rate that wins on inclusions and guarantees rather than by undercutting the portals — which would have put the listings at risk.
- Commission on a direct stay stays in the business.
- The OTAs remain a channel rather than the only channel.
What they were up against
A resort group almost entirely dependent on OTAs. Every booking paid a portal 15–25% commission, and the direct channel they did have — a Shopify store — was drawing 1,000 to 2,000 visitors a month and closing none of them. The owner's own conclusion was that people simply do not book a resort from a website.
What we shipped
A full rebuild with its own booking engine — seven room types, live availability, instant booking through Razorpay, and best-price-guaranteed positioning aimed squarely at the OTAs. Mt7 is paid a 16% share of the online revenue the channel produces rather than a fee for the build, so the engagement continues past launch and only earns if the bookings do.
What went wrong, and what we did
Rate parity was the hard part, not the code. Undercutting the OTAs directly would have risked the resort's listings, so the direct channel had to win on inclusions and guarantees rather than on headline price. That was a commercial decision we had to work through with the owner before a line of the booking flow made sense.
What was asked for, and what was done
The brief in their words.
- A website that could take a booking without a portal in the middle.
- Some way to stop paying 15–25% on every reservation.
What actually shipped.
- A direct booking engine: seven room types, live availability, instant confirmation.
- Razorpay checkout with signature-verified webhooks, so a payment is only trusted once the gateway has proved it sent it.
- Two-way sync with their eZee property management system, so a direct booking and a portal booking cannot sell the same room.
- PDF booking vouchers generated and sent automatically.
- Nightly automated reconciliation of payments against reservations.
- Then a second property on the same platform — Hong Sau Thavarekere, thirty minutes from Bangalore — with day-out packages, overnight stays, and corporate bookings for groups from fifty to eighteen hundred.
- Instant email confirmation carrying the gate code, so arrival does not depend on anyone being at a desk.
Not in the brief. Proposed by us.
- That the problem was effort, not interest. Some guests will not phone, and some are simply shy about asking — they want to book without speaking to anyone. The owner did not believe a website could close a resort booking at all, and that conversation had to happen before the build was worth doing.
- The rate strategy. Rather than undercut the OTAs — which would have put their listings at risk — the direct channel wins on inclusions and a best-price guarantee. Our recommendation, not the brief.
- That we take the online revenue funnel too — SEO, the Google Business Profile, social and promotions — because a booking engine nobody reaches is a form.
- A commission instead of a fee. Their objection was the honest one — what if I pay lakhs for a website and it sells nothing, which had already happened once. Taking 16% of the online revenue instead meant they risked nothing on the build. It has since earned more than the fee would have.
What keeps it safe.
- Razorpay webhooks are signature-verified; an unsigned callback cannot mark a booking paid.
- Sessions and staff access handled by NextAuth with server-side session storage.
- Rate limiting in front of the booking and payment endpoints.
- Independently audited afterwards — a non-destructive penetration test of hongsauresort.com covering TLS, security headers, CSP, CORS policy and the authentication gates.
Pointed at customers and revenue.
- The traffic was already there. Two thousand visitors a month were arriving and leaving; the build monetised an audience the resort had already paid to attract.
- Direct bookings keep the 15–25% that used to leave as commission.
- The guest's details belong to the resort, so a second stay can be asked for rather than waited for.
- Best-price-guaranteed positioning aimed squarely at the portals, so the comparison ends on their own site.
- SEO and Google Business Profile worked as part of the same engagement rather than sold separately.
- One platform now runs two properties, so the third costs a fraction of the first.
- The day-out and corporate segments are sold direct too, which the portals never carried for them at all.
Get your number in 2 minutes.
Instant estimate range. Exact quote after one 20-minute call. Held build slot. Money-back milestone one.