About
What is this?
whenDoesMyClimbingGymReset? tracks wall reset schedules for climbing gyms in Singapore (the ones I climb at lol). Each gym has its own page showing schedule images, a gym layout, wall information, and the dates when walls were last reset or are expected to be reset next.
How it works
I have an AI agent called Hermes that is connected to my Telegram. I can simply send it an image of a gym's reset schedule and it will upload the schedule and also extract the reset dates for each wall. Given that there's no easy way to scrape instagram stories (which are usually where gyms post their reset schedules), this is a semi-automated way for me to keep the site updated, till I find a better way.
Automated pipeline
For some gym chains, this process runs fully automatically. A Telegram monitor watches climbing group chats for newly posted schedule images. When one appears, it's queued for the Hermes Agent, which processes it every few minutes — classifying the image, extracting wall names and dates via OCR, and pushing the data straight to the site.
Gyms with automated tracking are marked with a 🤖 badge on their cards. Currently this covers Boulder+, Fit Bloc, and all four Boulder Movement gyms.
Tech stack
- Backend: Flask + Gunicorn + PostgreSQL
- Frontend: Next.js + TypeScript + Tailwind CSS
- Hosting: Self-hosted on a VPS via systemd
- Automation: Hermes Agent for image OCR and data ingestion
whenDoesMyClimbingGymReset?