Bluesky bot to report speeding buses
The people in my neighborhood Facebook group are often worried about cars speeding on the main road that goes through the area. While I can’t do much about that, I realized that I can at least monitor how fast the buses are going and make that visible, thanks to a realtime high-frequency positioning API provided by HSL that runs the public transport system here. This was around June 2020. I implemented a simple Java application to monitor those buses on the street, but the MQTT library I used proved unreliable, so I put the project to slow backburner. My idea was to eventually make it into a Twitter bot, but I never got that far back then.
Fast forward a couple of years to September 2022, two months before ChatGPT was launched. TypeScript was all the rage back then but I had not had the opportunity to use it at work yet, so it clicked to me that I could retry my old bus speed tracker with TypeScript.
Fun fact and an absolutely amazing coincidence: just when I had opened the editor to start the project my colleague, with whom I had briefly discussed during my previous attempt, sent me a message along the lines of “Hey, have you seen this new Twitter bot? It’s tracking bus speeds on some street in Vantaa! Weren’t you going to do something similar?”.
It was a bit bitter moment to have someone else do it first, but I quickly decided that since it was coded in Python, the world could fit another bot like that but made with TypeScript. I don’t remember the exact timeline but I think the project went pretty smoothly and I got the thing to post bus speed graphs to Twitter quickly enough.
The bot then ran from my laptop for few months. Elon Musk notably completed his acquisition of Twitter at the end of October 2022, and a few months later he revoked access from all bots. I did not feel like contributing to his platform anymore and never reacquired an access token for my bot, so backburner it was again.
Now, fast forward once more, this time to the beginning of January 2026. I had had it in my mind that I could have the bot run on some other platform, but now the time was ripe: I had seen at work that AI agents had become rather good, so I installed the ChatGPT extension to VS Code and gave it the task of converting my Twitter bot into a Bluesky bot, and it did it in one shot!
Next, I wanted the bot to be hosted somewhere in the cloud. I had Chad do some research for me and landed on a provider called Fly.io. It’s a very straight forward service that almost automatically deploys a GitHub repository for you. In my case I had to tweak the default settings a bit as I wasn’t going to expose a web service, but overall the setup process was pleasurable enough and way better productized than, say, hosting your little app on AWS. (A great benefit with Fly.io is that they weave bills less than $5 per month for hobbyists, and on the minimal host that runs my bot the bill comes somewhere around $2 per month, so it’s free for me!)
So anyway, encouraged with this sudden success I was quickly able to add many more features to the bot. You still need to keep an eye on the code quality, as the AI missed some obvious refactoring opportunities, and also with a visual tool like this I soon discovered I needed it to create me some bogus data generator for testing the changes, without having to wait for the next bus! It also did some unnecessary refactoring that I never asked for and didn’t want and ended up reverting, but in general I feel it worked really well. (It’s to be noted that you can’t really blast out new features at work like that because usually new code needs to be reviewed by another person, and there are other factors in play as well, but for a solo developer of a hobby project it’s great.)
The bot’s output, updating all the time, can be viewed at its Bluesky account @puksunbussit.bluesky.bot, and the source code is in GitHub. The bot posts in Finnish but you should be able to easily figure out what’s going on, and the source code is in English. I think this project shows how easy it is nowadays to do useful little hosted hobby projects, Bluesky bots, and to hopefully shed light into some small issues in the society as well.