Knowing where the courts are is the easy half. OpenStreetMap already knows. The question that decides whether you leave the house is whether anyone is on them right now, and nothing answers it. The alternatives are a group chat that covers one court, or driving over to find out.
That made two things the product had to get right, neither of them about drawing a map. A court map with an empty first screen is worthless, so courts seed from OpenStreetMap per viewport and the map is never blank in a city it has not seen before. And a live headcount is only worth checking if it cannot be casually wrong, so check-ins are geo-verified server-side within 150 m of the court and expire on their own two hours later.