Scan a QR, pick a court, pay by GCash. No phone calls, no double bookings.
Topspin Pickleball’s Cebu courts were booked by phone and tracked in a shared spreadsheet. We built their booking system: customers book and pay from their phone, staff run the day from one dashboard, and the database itself refuses a double booking.
- Live in Cebu
- GCash and card payments
- Run by staff from one dashboard
- Client
- Topspin Pickleball, Cebu
- Industry
- Sports venue
- Services
- Web app development, payments
- Engagement
- August 2026 – ongoing
A venue run from a phone and a spreadsheet
It works for a handful of bookings a day. As the courts got busier, every booking became a conversation and every slot a chance to promise the same court twice.
Booked by phone
Every reservation was a call or a chat message, answered by whoever was free.
A shared spreadsheet
Court times lived in one sheet that several people edited, with no way to lock a slot.
Double bookings
Two customers could be promised the same court at the same hour, and find out at the venue.
Payments by screenshot
GCash payments arrived as screenshots that staff had to match to bookings by hand.
From QR code to confirmed court
The whole booking happens on the customer’s phone, with no app to install and no one to call.
- 01
Scan
A QR code at the venue opens the booking page on the customer’s phone. No app to install.
- 02
Pick
Live availability for every court. Choosing a slot holds it for 10 minutes while they pay.
- 03
Pay
GCash or card. The payment and reference are attached to the booking, not sent in a chat.
- 04
Confirmed
Staff verify from the dashboard and the customer gets a text confirming their court.


The whole day in one dashboard
Payments to verify, today’s courts, walk-ins and income, without a spreadsheet. Shown with sample bookings, so no real customer’s details appear.




Built so the rules can’t be broken
A booking system earns trust by never getting a booking wrong. These are the decisions that make sure of it.
Double booking is impossible, not just unlikely
A Postgres exclusion constraint refuses any overlapping booking for a court, and an advisory lock makes two customers racing for the same slot take turns. Either layer alone would stop it.
One availability engine
The customer grid, the checkout re-check and the staff schedule all call the same function, so a booking rule is never written twice and can never disagree with itself.
Holds that expire on their own
A chosen slot is held for 10 minutes, then released automatically. Countdowns use the server’s clock, so a phone with the wrong time can’t break them.
Booking and payment tracked separately
A booking can be confirmed while its payment is still being checked, and a rejected payment reopens the payment window instead of cancelling the court.
Built for the front desk too
Walk-ins, phone and Messenger bookings go through the same rules. Staff can book several courts at once as one booking with one payment.
Pricing the owner controls
Weekend, evening and holiday rates, plus rate changes scheduled ahead of time, all set from the admin panel without a developer.
Live, and run by the venue’s own staff
Topspin’s customers book and pay on their own, and staff manage courts, payments and pricing from the admin panel. We keep running and improving it as a managed service.
Double bookings possible, enforced by the database
Slot holds that release themselves if unpaid
Availability engine behind every screen
Automated test files covering booking rules and edge cases
Run a court, studio or venue? See our court booking system and custom web app development.
Still taking bookings by phone?
Tell us about your courts and how you take payments today. We’ll reply with a plan and a fixed-bid quote.
Get a booking system for your venue
Tell us how many courts you have, your hours and how customers pay. We’ll reply with questions and next steps.
- Fixed-bid quote, no hourly billing
- GCash and card payments built in
- Built and supported from Cebu