It's super simple. HTML + CSS + JS and a node script that's executed via CRON that populates `data.json` (every 10 minutes so I don't have to auth with Github). And then the "static" frontend just fetches the updated `data.json` and works with it. You can check the JSON here
https://ccwatch.net/data.json.