Tennis Checkerboard
- Developed a real-time tennis tournament checkerboard web application using HTML/CSS/JavaScript that aggregates live match data from a custom-made API (hosted on Vercel).
- Able to give notifications when a match changes court or players.
- Widely used by my company’s live operations team during large tennis tournaments to keep up to date on court and player changes, as well as to keep track of the matches on their assigned court.
Making a project while on shift
2025
Context: My company broadcasts tennis grand slams. To keep up to date with the latests scores, games and players on different courts, we used to utilise a checkerboard that the grand slam organisation would provide for all broadcasters to use.
Problem: The Checkerboard is down!
How did it break? So apparently the source for the original checkerboard (SMT) was changing their licensing, and so their checkerboard just didn’t work for the entirety of Roland Garros 2025..
Anyways, this was inconvenient for my team, so I tried looking for alternatives.
First I tried some random sports betting API coupled with another Roland Garros tennis court API. And it worked? But not very reliably? And it also didn’t give me very much useful information. Like barely anything at all.
And then I tried to hastily slap it together with a really ugly UI.
-
I thought surely there was a better way to get this information (and for free? I had to do a free trial for those sports betting APIs access)
-
I went to Roland Garros’ order of play website and inspected the networks tab, found that it was calling this API: https://www.rolandgarros.com/api/en-us/polling
- I thought maybe I could use it too, but that API had CORS protection?
- So I had to make my own server/API to call it to bypass CORs.
- tldr: roland garros has an api but webpage browser cannot access because of CORS
added special tags for australian players (for our specific business usecase)
- uhh but i was hosting on my own machine using… nginx.. which brought uh multiple problems
- bad practice !!!! very very bad expose secrets
- so an engineer at work advised me to try hosting the server with vercel
- vercel server made so that bypass CORS
- vercel server queries https://www.rolandgarros.com/api/en-us/polling every time it is called by this web page (about every 1.5 seconds)
2026
- anyways it got reused by my team the next year (2026) because the mis checkerboard still down since 2024..
- improvements made recently to increase interval check from like 20 seconds to 1.5 seconds (speed 😎)
- also since company recently introduced ad breaks to customers, built another website on top of it to help notify people when during the match to take ad breaks (there are specific timings)
- i dont think i can show this tho but i can show the reactions to itmid
anyways yeah good outcome :)