The problem
Perda Ventures rents out ten spaces at Midtown Perda — a main hall, meeting rooms, event floors. Availability lived with whoever answered the phone, a booking lived in a WhatsApp thread, and the invoice was typed out per booking.
That works until two enquiries land on the same Saturday. Then the risk is not admin overhead, it is double-booking a wedding.
What we observed
Before we wrote any code.
Watching a booking go through, the calendar turned out to be the whole product. Everything else — the quote, the invoice, the work order — is downstream of one question: is this date free, and is it still free now?
The second thing was that a booking is not real until money moves. Deposits were being chased by phone days after a slot had already been promised, so the office was holding dates it could not confirm.
And the crew needed something the customer never sees: a work order on the day, with what goes into the room and who signs it off.
What we built
A public booking flow with a live availability calendar across all ten venues, FPX and card payment, and slots that lock the moment payment clears.
Behind it: official PVISB invoices generated automatically, deposit and balance tracked against a 30-day rule, postponements handled without losing the payment history, work orders produced from the booking for the operations crew, and one admin calendar covering every venue.
Before vs after
The same job, the old way and the new way.
Before
After
Results
Counted from the production database on 2 August 2026. Includes booking history migrated from the previous records.
Screenshots
Build something similar
Let's build yours.
Tell us what you're planning. Free 30-minute call, a written scope and a fixed quote — we reply within one working day.