All projects
C

CourtBook NYC

Find and book basketball courts across New York City — 48 courts, real-time availability.

In Progress
Next.js 14TypeScriptSupabaseMapboxStripeTailwind CSS

Overview

CourtBook NYC is an interactive platform for discovering and booking basketball courts across all five NYC boroughs. It features a Mapbox-powered interactive map, Stripe payment integration for bookable indoor venues, a community runs board, and a seeded database of 48 courts sourced and categorized by neighborhood.

48
Courts
5
Boroughs
32
Pages

Key Features

  • Interactive Mapbox map with clustering and neighborhood filtering across all five boroughs
  • Stripe payment flow for bookable indoor venues with real availability tracking
  • Community runs board — users can create and join pickup games at any court
  • Seeded database of 48 courts with photos, surface types, amenities, and booking status
  • 32 server-rendered pages with zero build errors and sub-second TTFB on Vercel Edge

What I Learned

react-map-gl v8 must import from react-map-gl/mapbox — the root import silently fails
Stripe client must be lazy-initialized to avoid build-time environment errors in Next.js
Seeding idempotently (upsert on name+borough) makes iterative development dramatically faster