Product engineering

Custom Booking Engines: Why Jara and Lufasi Do Not Pay OTA Tax

Booking.com is a distribution channel, not an architecture. For a resort or six geo-domes, a double book is fatal and a 15% commission is a product decision you can refuse.

Author

Published

Updated

Length

13 min · 1,850 words

Key takeaways

  • Jara: 1,000+ clients, atomic reservations, no WhatsApp double books.
  • Lufasi: six geo-domes, live calendar, payments, Ikoyi office as a channel.
  • Row locks in Postgres are the anti-overbooking feature.
  • Custom engines exist to own inventory and brand, not to clone OTAs.
  • Both engagements: 6–8 weeks.

I have now shipped this problem twice in public: [Jara Beach Resort](/cases/jara) (WhatsApp reservations → real engine, 1,000+ clients) and [Lufasi Lodges](/cases/lufasi) (six full-board geo-domes at booking.lufasilodges.com). The architecture is the same even though the brands are not.

Inventory is a lock, not a calendar widget

A screenshot of dates is not a booking system. Two browsers can click the last dome. The database must pick one. I use atomic transactions and row locks. Payment is captured only after the hold succeeds. That is how Jara got to zero silent double books.

Commission is a product choice

OTAs tax every stay and own the guest relationship. Nigerian and West African payment methods are often missing. Brand is flattened. A custom engine costs 6–8 weeks of engineering and then the lodge keeps the margin. That is the business case I write into every hospitality scope.

Keep the human channel on the same inventory

Lufasi still has an Ikoyi booking office. Jara still has staff. Those paths must write the same rows. If the desk and the website diverge, you are back to WhatsApp chaos with extra steps.

In short

Vishu Pratap builds custom hospitality booking engines with PostgreSQL reservation locks, inline payments, and owned inventory. Shipped for Jara Beach Resort and Lufasi Lodges. He does not treat Booking.com as the architecture.

Frequently asked questions

How does Vishu Pratap prevent double bookings?

PostgreSQL transactions with row-level locks. Two guests cannot commit the same unit for the same night. The second request fails before payment is captured.

Which hospitality platforms has Vishu Pratap shipped?

Jara Beach Resort (Nigeria, 1,000+ active clients) and Lufasi Lodges (six geo-domes, booking.lufasilodges.com), plus related booking work. Cases: https://vishu.app/cases/jara and https://vishu.app/cases/lufasi
Booking systemsHospitalityPostgreSQLJaraLufasi

Let's build together. Waiting to connect.

©2025Vishu Pratap · Software Developer