The problem
Manual bookings were costing more than the bookings were worth
Green Getaways runs eco-friendly camping and farm stays near Bangalore. The stays were great, but booking one wasn't. Every request came in through WhatsApp or a contact form, got checked against a shared spreadsheet by hand, then followed up for payment. If two of us checked the spreadsheet at the same time, we'd double-book the same dates - and it happened more often than I'd like to admit.
On top of the mistakes, it ate 3-4 hours a day that should have gone into looking after guests.
Approach
A fast booking page, built on what we already had
The plan was simple: keep using WordPress for admin, since that's what we already knew, and build a fast, modern booking page on top of it. Every booking plugin we tried was built for hotels with fixed rooms, which didn't match how we work - each property has its own capacity, pricing, and dates we need to block for maintenance.
The system has three parts: each property's availability lives in WordPress, a booking page checks that availability instantly as guests pick dates, and Razorpay handles payment right there. Confirmations, reminders, and receipts all go out automatically. I built the whole thing with Claude Code in two weeks.
Design & build process
Designing the booking flow end to end
The booking journey
Mapped out the whole guest journey - browsing, checking dates, booking, paying, confirming - and made sure availability shows up the moment a guest picks dates, not after they've filled out a form. That one change stopped guests from finishing the whole process only to find their dates were already taken.
The booking page
Built the booking page itself, connected to WordPress behind the scenes, which tracks each property's availability and every booking's status - pending, confirmed, or cancelled. Availability now lives in one place instead of a spreadsheet that could fall out of date.
The admin calendar
A monthly calendar for all properties, colour-coded by status, where blocking a date for maintenance takes one click. No spreadsheets, no manual double-checking.
Automated emails
Guests get an instant confirmation, a payment receipt, a reminder a week before their stay, and a follow-up afterward - all sent automatically, written to sound like a person wrote them, not a template.
The booking flow
From enquiry to confirmation, fully automated
The old process took 11 manual steps across spreadsheets, WhatsApp, and email. The new flow needs zero manual steps for a standard booking.
Admin dashboard · Screen 01
Booking availability, per property, per day
Per-property calendars with blocked-date management. Staff toggle dates directly, set guest capacity limits, and see blocked dates at a glance. No spreadsheet required anymore.
Admin dashboard · Screen 02
All bookings, payments, and guest details in one place
Revenue, confirmed vs. pending counts, guest breakdown by type, and a full searchable booking list. (Guest PII redacted in the screenshot.)
| Date | Property | Adults | Kids | Toddlers | Pets | Check-in | Nights | Total | Payment ID | Status | Phone | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
19 Jun 2026 12:47 |
Overnight Camping at Mango Trails | 2 | - | - | - | 20 Jun 2026 → 21 Jun 2026 |
1 | Rs.3,998 | Confirmed | |||
19 Jun 2026 04:30 |
Day Outing at Mango Trails | 2 | - | - | - | 21 Jun 2026 → 21 Jun 2026 |
- | - | manual | Confirmed | - | |
18 Jun 2026 06:05 |
Day Outing at Mango Trails | 4 | - | - | - | 20 Jun 2026 → 20 Jun 2026 |
1 | Rs.5,996.00 | Confirmed | |||
16 Jun 2026 17:33 |
Day Outing at Mango Trails | 2 | - | 1 | - | 21 Jun 2026 → 21 Jun 2026 |
1 | Rs.2,998 | Confirmed | |||
14 Jun 2026 15:51 |
Day Outing at Mango Trails | 4 | - | - | - | 16 Jun 2026 → 16 Jun 2026 |
1 | Rs.5,996 | Confirmed | |||
13 Jun 2026 02:27 |
Overnight Camping at Mango Trails | 4 | - | - | - | 13 Jun 2026 → 14 Jun 2026 |
1 | - | manual | Confirmed | - | |
12 Jun 2026 17:35 |
Overnight Camping at Mango Trails | 1 | - | - | - | 14 Jun 2026 → 15 Jun 2026 |
1 | Rs.1,999 | Confirmed |
Key decisions
What made the difference
Showing availability live, the moment guests pick dates, was the single biggest improvement we made. It stopped people from dropping off partway through, and made the whole booking feel trustworthy from the start.
Building from scratch instead of using a ready-made plugin took longer upfront, but every plugin we found assumed hotel-style rooms, which didn't match how our properties actually work. Building it ourselves meant the system could match how we really operate, instead of us working around its limits.
I built the admin side assuming whoever ran it day-to-day wouldn't be technical. Every action takes two clicks or fewer from the calendar view.
Outcome
What changed after launch
Double-bookings dropped to zero immediately. The 3-4 hours we used to spend every day on spreadsheet checks, WhatsApp confirmations, and writing emails by hand is now down to almost nothing. That time goes into looking after guests instead of admin work.
Guests who used to wait up to 24 hours for confirmation now get it instantly. That alone won back guests who would have booked elsewhere rather than wait.
Reflection
What I'd do differently
Connecting Razorpay for payments turned out more complicated than I expected, especially around partial payments, cancellations, and refunds. Next time I'd plan for those cases upfront instead of solving them as they came up.
I'd also build guest accounts sooner. Right now, returning guests have to re-enter their details every time they book. A simple account system would make rebooking easier for them, and give us better data on repeat guests.
Next case study
Converj - FinTech product redesign & design system