
For the past few weeks I’ve been building a small web experiment called RainChat.
The idea came from those brief encounters we sometimes have in life. You meet someone while waiting for a train, sitting in a bar, travelling, or just killing time somewhere. Maybe the conversation is completely ordinary. Maybe it’s the most interesting one you’ve had in months. Either way, it exists inside a very small window.
You don’t exchange profiles. You don’t become part of each other’s lives. You just share a moment, and then it’s gone. The anonymity makes it lighter somehow, but also more honest. Or maybe it only feels that way because you know there won’t be a second chapter.
That’s why a bus stop under the rain felt like the right place for RainChat. A bus stop is a temporary place by definition, you’re there because you’re about to leave.

So RainChat is an anonymous chat set at a rainy bus stop. Two strangers arrive, exchange a few messages, and eventually the bus comes. The conversation ends, the screen fades to black, and both people disappear from each other’s lives.
That’s pretty much it.
It’s also the first programming project I’ve made since finishing Computer Science at university, which was… too long ago. This time I wanted to actually build something myself again.
Part of the excuse was curiosity. I wanted to try the current wave of AI coding tools, vibe coding, and all the strange new ways of making software that seem to be appearing every five minutes. But I didn’t want to make a to-do app or something purely practical. I wanted to make a small thing with a mood.
RainChat doesn’t behave like a normal chat. Messages move through the screen, and if you don’t read them in time, they keep going. Sometimes they overlap a little, like real conversations do. I liked the idea that the interface wouldn’t preserve everything perfectly for you. It should feel slightly out of your control.
There’s also a language layer between what you type and what the other person sees.
Every message passes through an LLM before being shown. The original text disappears. What comes back is shorter, stranger, more poetic.
I’ve been calling it “haiku noir” in my head.
It adds a bit of distance and mystery to the conversation. It also makes the whole thing slightly less useful, which I think is part of the point.


It ended up touching more pieces than I expected. A simple frontend gradually grew into canvas effects for the rain, a small Python backend, LLM-powered messages, procedural music, and enough infrastructure to let strangers actually meet online. Somewhere along the way I also added Spanish and English support, because I liked the idea of softening the language barrier without turning it into a translation app.
I don’t want to make RainChat sound bigger than it is. It’s just a small experiment.
But I enjoyed making it. It reminded me that programming can still feel playful when the goal isn’t to build something useful, but to create a tiny place with a specific mood.





























