Work · Case 03 of 03
Built from zero: the CMS behind 100+ running events
I built what running event organizers need after checkout: race pack collection, white-label pages and payouts. 100+ running events now use it.
- Byline
- Gilang Segara
- Role
- Sole product designer
- Timeline
- 1 quarter
- Platform
- Web (mobile and desktop) and CMS
- Status
- 3 flows live, 2 in development

Chapter I
The brief
Running events were popping up everywhere, and the data showed runners were eager to sign up. TribunBooking could sell a ticket, but an organizer's work starts after the sale, and there was nothing to support it.
In one quarter, as the only designer, I built that tooling from zero: race pack collection, white-label event pages and payouts. Ballot and bib transfer are being built now.
Chapter II
Three people, one system
Nobody uses this system alone. Three groups work in it, under very different pressure.
- Organizers run the event from a dashboard: tickets, runners, branding and payouts.
- The field team hands out race packs on race weekend, with a queue in front of them.
- Finance checks every withdrawal request before any money moves.
Each screen had to be built for the person who opens it, not for an average user.
Chapter III
What is live
Race pack and bib collection
The runner arrives with a QR code. The race pack committee opens the RPC menu in the dashboard and scans it, and the runner's row changes from ready to done on its own.
The committees already own handheld scanners. I designed around them: the scanner types into the dashboard's search field, so there is no new app to install or learn.
White-label
Organizers wanted the event page to look like theirs. They set the logo, colors, domain, copy and description, and a live preview shows the result on desktop and mobile as they type.

Withdrawals
Payouts used to be handled by hand. Now the organizer requests a withdrawal from the dashboard and follows its status. Finance opens the same request as an itemized breakdown of tickets, vouchers, service fee and admin fee, verifies it, and approves or rejects it.


Chapter IV
In development: ballot and bib transfer
Both are designs in progress, so I am not claiming any results for them.
Ballot
Some races sold out their quota within minutes. For those, runners register first, get drawn, then pay. To be considered, a runner submits proof of earlier races as a link, a URL or an image. Registration reuses the checkout flow at zero price, with the registration window shown up front. The organizer reviews each submission and decides whether it qualifies, then runs the draw and emails the runners.
Bib transfer
A runner who cannot race passes the bib to someone who missed out. The sender enters the replacement's email and phone number. The replacement gets an invitation, fills in their details and pays a transfer fee. The sender's ticket is locked as in transfer until that is done.
Chapter V
The hard call: many tickets at once
Someone who bought several tickets often needs to pass them on to different people. So one transfer can include many tickets, each with its own recipient.
The risk is just as clear: it also makes life easier for scalpers. I kept it and added guards instead of removing the feature.
- Every transfer carries an administration fee.
- Each bib can be transferred only once.
- The invitation expires after 24 hours.
- The sender's ticket stays locked while a transfer is pending.
Chapter VI
Where it stands
Running events on the system
Across the whole platform
Flows live
Race pack, white-label, withdrawals
In development
Ballot, bib transfer