Case study · Our own product
Komugo Platform
A booking and ticketing marketplace for courts, rides, cruises and parks in Putrajaya. We designed it, built it and run it ourselves, every day.
- Role
- Product, design, engineering, operations
- Status
- Soft-launched, live in Putrajaya
- Stack
- Cloudflare Workers, D1, Durable Objects, Astro
- Languages
- English and Bahasa Malaysia

The problem
Finding a court shouldn't take three phone calls.
Putrajaya has public courts, stables, climbing walls, lake cruises and parks, run by many different operators. There was no single place to see what's on, what it costs and whether a slot is free.
Booking usually meant a phone call or a WhatsApp chat, and prices, age limits and opening hours were hard to find before you arrived.
What we built
One engine for every kind of booking.
Each venue runs on different rules. A badminton court is booked by the hour, a horse ride per rider, a pool by the day, a fun run by the event. The engine handles all of them.
01
Live availability
A time only shows as open when the court, horse or instructor it needs is free. A short hold keeps the spot while the customer pays, so two people can't book the same thing.
02
Named tickets
One ticket per person, or one per court for a group, each with its own QR code. Price, duration and age limit are shown before anyone pays.
03
Online payment and refunds
CHIP checkout with FPX is built in. When a refund is due, the system is built to send it back through the payment gateway on its own.
04
Venue rules
Per-person and per-court pricing, weekend and peak prices, closed days, booking cutoffs, cancellation windows, multi-day events and passes.
05
Closures and reschedules
When a venue closes a slot for weather or maintenance, each customer is emailed once to choose a refund or a new time.
06
Built for counter staff
The system is built to send a WhatsApp alert for every booking, with a link to that day's list. Komugo staff manage venues and activities from a separate dashboard.

Stack
Small, fast and close to Malaysian users.
- Cloudflare Workers
- The API and the site run on Cloudflare's network, close to the people using them.
- Cloudflare D1
- A SQL database holds activities, bookings, tickets and payments.
- Durable Objects
- Each operator's bookings pass through one coordinator, so holds and tickets never collide.
- Cloudflare Queues
- WhatsApp messages go through a queue that retries failed sends automatically.
- Astro
- Activity pages are built ahead of time and served as plain HTML, so they load fast on a phone.
For your project
The same engine, built around your rules.
Our Booking system Package is custom-built on this engine, not started from scratch. You get your own site, your own branding and your own admin dashboard, shaped to how your venue actually takes bookings. RM18,000–35,000, delivered in 6–12 weeks.
Need a booking system like this?
Tell us how your venue takes bookings today. We'll reply with questions, a scope and a quote.