🧗Climbwhere.sg

When COVID-19 hit, many climbing gyms in Singapore adopted timeslot-booking systems in order to limit the number of people in their facility.
All of a sudden, climbing passes only granted you a 2-3 hour climbing session, and there were a limited numer of slots as well. Climbing with a group of friends became difficult to organise as you’d have to book with a gym that had enough slots ahead of time, and most of the gyms used different booking systems, which was tedious to cycle through manually.
I hatched an idea to scrape climbing gym booking sites and soon got enough scraper scripts working to aggregate a pretty comprehensive report of which gyms we could climb at. I scrapped together a simple Svelte site to display this data:

This was a pretty good oppourtunity to try Svelte out. One weekend later, this is what the website looked like:

Upon initial sharing, fellow climbers expressed that a Telegram bot would be convenient as well. I hadn’t written one before but node-telegram-bot-api made it really simple to get started with building a Telegram bot.
And so, build a bot I did:

Meanwhile, Ravern re-wrote the scraper— the brains of this operation. Our scraper was initially forked from bottleneckco/sg-scraper. Turns out while using GitHub Actions and Pages to scrape and publish data is genius, GitHub does eventually rate-limit it.
Putting it out
As we saw how useful this information was, we eventually decided to put Climbwhere up for others to use as well. Overall, building Climbwhere was a pretty positive experience :)

Check out the Github project for Climbwhere here.
Updates (March 2022)
The SMM rules for gym facilities in Singapore have finally been loosened! Climbing gyms will be reviewing the latest guidelines and making changes to their booking systems, so the slot timings on this website may no longer be relevant.
Below is a compilation of all the latest changes that gyms have made:
| Gym Name | Booking Required? | Slot Duration | Remarks |
|---|---|---|---|
| boulder+ | No | Full Day | |
| BFF | No | Full Day | |
| Boulder World | No | Full Day | |
| Ground Up Climbing | No | Full Day | |
| Boruda | No, unless 6:30pm-10:30pm on Weekdays | Full Day | |
| Boulder Planet | No, unless 7:00pm-10:00pm on Weekdays | Full Day | |
| b8A | No, unless 6pm-10:30pm on Weekdays, OR 10am-6pm on Weekends/PH. | Full Day | |
| Boulder Movement | Yes | 3h | |
| Climb Central | Yes | Unchanged | Removed alt. lanes rule |
| Fit Bloc | Yes | 4h 15mins | |
| Z-Vertigo | Yes | 3h 20mins | |
| Oyeyo | Yes | 3h | |
| T-Hall | Yes | 3h 45mins | Removed alt. lanes rule |
Climbwhere is shutting down (May 2022)
With effect from 25th May, gym slot information will no longer be posted on Climbwhere.sg and the Climbwhere Telegram bot. This comes as most climbing gyms no longer require bookings for gym entry.
Climbwhere was created as a side project in 2021. It was visited 13.6k times, with around 500 monthly users at its peak.
We enjoyed working on this project and appreciate all the support and encouragement from the community. The source code is available and open-sourced on Github here.