My wife and I are heading to Thailand soon, and while we're learning some basics, I was thinking about those quick, everyday interactions where a language barrier can be awkward – asking for directions, ordering street food, chatting with a vendor, etc.
I didn't want the friction of firing up a dedicated translation app each time or dealing with account signups for something temporary.
So, I decided to build Kodo Chat as a little side project to scratch my own itch. The idea is a super simple, temporary chat room focused purely on real-time translation between two people.
How it works:
One person ("host") visits the site, selects their language, and gets a QR code and a shareable link. The other person ("guest") scans the code or opens the link on their phone, selects their language, and they're connected in a temporary room.
Messages sent by either person are translated (currently using OpenAI - gpt-4.1 by default, but configurable) and displayed along with the original text on the other person's device.
Rooms and user links expire automatically (via Redis TTLs), so there's no persistent data or accounts needed.
It's built with Expo (React Native Web) for the frontend, Node.js/Express/Socket.IO on the backend, and Redis for session/room management. The UI is pretty basic right now (using React Native Paper), and the translations are only as good as the underlying AI model, but it seems to handle simple conversational stuff reasonably well in testing.
It solved my immediate need, and I thought others might find it useful, so I've open-sourced it.
Live Demo: https://kodo-frontend.onrender.com/ GitHub: https://github.com/jonathanleane/kodo
Would love to hear any feedback, suggestions, or criticisms you might have! Especially curious if anyone else has faced similar communication hurdles while traveling and what solutions they've found.
gabrielcrist•5h ago
Fiquei curioso: como o Kodo lida com expressões idiomáticas ou gírias locais? E existe algum tipo de armazenamento ou histórico das conversas traduzidas?
Pode ser uma ótima ferramenta não só para viagens, mas também para equipes multiculturais em ambientes remotos.
jonathanleane•5h ago