Courtside
A multi-sided sports-venue booking platform — discover and reserve courts across six sports, manage venues from an owner dashboard, and onboard the whole marketplace from a super-admin portal.
Courtside is a full-stack booking platform — think OpenTable or Playo for sports facilities — built around three distinct experiences. Players browse and reserve time slots across six sports: pickleball, cricket, football, basketball, tennis and badminton. Venue owners manage their courts, availability and bookings from a dedicated dashboard. A super-admin portal sits on top to onboard venues and assign owners. Bookings are confirmed through a real payment-gateway integration, with pending holds that auto-expire to free up slots.
01 · The challenge
Three audiences, one source of truth.
Sports-facility booking is a marketplace problem: players want to find an open court near them right now, venue owners want to control exactly when and how their courts are bookable, and the platform operator needs to onboard venues and keep the whole system trustworthy.
The hard part is availability. Courts open and close on irregular schedules, get blocked for maintenance or private events, and must never be double-booked. And a booking only counts once money changes hands — a held slot that never gets paid for shouldn't lock everyone else out forever.
02 · The platform
Built for every side of the market.
Each role gets a purpose-built surface, all backed by a single authoritative model of venues, courts, availability and bookings.
Player experience
A sport-aware landing page with featured venues and live stats, a venue browser with search and filtering by sport, city and amenities, and detail pages with photo galleries, lightbox and per-court info (surface, indoor/outdoor).
Real-time slot booking
Pick a date, see a live availability grid, and book in configurable slot lengths of 30, 60, 90 or 120 minutes. Booking details capture profile autofill, a country-code phone number and an ID number.
Pay-to-confirm checkout
Bookings start as pending and become confirmed only after a successful payment. Stale pending holds auto-expire to free the slot back up, so unpaid reservations never block real players.
Venue owner dashboard
Owners manage courts, surfaces and photos with per-venue and per-court image caps. Courts are closed by default and opened with additive per-date open windows and weekday schedules, plus one-off overrides and manual blocks.
Super-admin portal
Create venues and assign or transfer ownership to users, with platform-wide booking visibility. Access is gated behind an email allowlist, keeping the highest tier locked down.
Granular availability
Availability is modeled as additive open windows over a closed-by-default baseline, combined with weekday schedules, schedule overrides and manual blocks — so a court is bookable exactly when its owner intends, and never otherwise.
Product view
The live product.
Courtside is deployed and running in production. Explore the real app below, or open it in a new tab.
03 · Engineering
Type-safe, role-aware, and built around real money.
Courtside is a Next.js 16 App Router app with React Server Components, React 19 and TypeScript end to end. Data and auth run on Supabase (Postgres + Auth) with Row-Level Security: public read policies for venues and courts, and a service-role admin path gated behind verified ownership and role checks. Ten incremental SQL migrations model venues, courts, bookings, blocks, schedule overrides, open windows and payments.
Payments go through a PayHere integration with proper server-side hash signing — the merchant secret never leaves a server-only module, and every entry point asserts sandbox mode so it can't hit the live gateway by accident. Three authorization tiers — player, owner and super-admin — are enforced server-side throughout.
04 · Outcome
A complete marketplace, live in production.
Courtside ships all three sides of a sports-booking marketplace in one coherent product: players book in seconds against real-time availability, owners stay in full control of when their courts are bookable, and operators onboard new venues without touching the database.
With server-enforced authorization, payment-gated confirmation and an availability model that can't be tricked into double-booking, it's a platform that holds up where it matters — at the moment a player's money turns a held slot into a confirmed game.
Have a platform like this in mind?
Well begun is half done.
Free consultation · No commitment required · Response within 24h · Global availability