Tee times, tournaments, and clubhouse ops — for golfers and managers.
The Problem
Golfers juggled club-specific booking channels; clubhouses ran tee sheets, members, and tournaments in disconnected tools. There was no shared product that treated the golfer and the clubhouse as equal first-class roles.
Our Answer
We built On Par as one Laravel platform with two Flutter apps. Booking, scoring, memberships, tournaments, feed, and payments share the same domain model — so a tee sheet block for a tournament is the same record that stops a conflicting booking.
Formerly Tee Off, On Par is the golf ecosystem we built for Egypt and beyond. Golfers discover courses, book tee times with guests and add-ons, reschedule, join tournaments, track handicap and in-round scores, and unlock AI caddie features on subscription. Clubhouse managers run a full ops app: courses, members, bookings, feed, wallet, promotions, and tournament control — including org-hosted events on borrowed venues. Filament backs admin; Paymob handles payments. One backend, two roles, one product.

What's inside
Search, book with guests and add-ons, cancel or reschedule — including club-suggested time changes.
Flights, tee sheets, scoring, leaderboards, prizes — plus org events hosted on another club's course.
Per-hole scorecards, handicap index, and subscribed stats (GIR, fairways, trends).
What's-in-the-bag profiles drive distance recommendations for subscribed golfers.
Courses, members, bookings, feed, wallet, promotions, and tournament management.
Paymob for golfer and clubhouse money movement; Filament for platform admin.
How we got here
Golfer vs clubhouse roles, booking and tournament rules
Booking, courses, memberships, manager app, Filament admin
Flights, tee sheets, scoring, Paymob, org venue hosting
Store submission prep, polish, and live clubhouse pilots