<dipag.dev/>

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
Next.js 16TypeScriptPostgreSQLPrismaPayMongoGCashCloudflare R2SMSVercel
The problem

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.

How it works

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.

  1. 01

    Scan

    A QR code at the venue opens the booking page on the customer’s phone. No app to install.

  2. 02

    Pick

    Live availability for every court. Choosing a slot holds it for 10 minutes while they pay.

  3. 03

    Pay

    GCash or card. The payment and reference are attached to the booking, not sent in a chat.

  4. 04

    Confirmed

    Staff verify from the dashboard and the customer gets a text confirming their court.

Topspin booking grid on a phone with one court selected and a Continue button showing ₱400
What customers see after scanning the QR code
Topspin booking page on desktop showing courts and times for the day, with booked slots marked
Every court and hour at a glance; booked slots can’t be picked
For staff

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.

Topspin admin dashboard with payments to review, today's bookings and collected income
Dashboard: payments to review, today’s bookings and what’s been collected
Topspin admin schedule showing booked and free hours for each court
The day’s schedule for every court
Topspin pending payments list with booking references and amounts
Payments waiting for staff to verify
Topspin walk-in booking form with court checkboxes and free and booked times
Walk-in and phone bookings, using the same rules
Engineering

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.

Results

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.

0

Double bookings possible, enforced by the database

10 min

Slot holds that release themselves if unpaid

1

Availability engine behind every screen

44

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 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
Average reply time < 4 hours
or email direct: hello@dipag.dev

Quick question? Chat with us

or send the details

Talk to the founder

Direct tech lead review
Get a quote