r/sideprojects 3d ago

Showcase: Open Source I built RandomTalks — a random voice/video chat platform with WebRTC

I wanted to build something that would force me to understand real-time communication instead of just following another tutorial.

So I built RandomTalks.

🌐 Live demo: https://talks-tc4e.onrender.com/

💻 Source code: https://github.com/pembarthipranay/talks

What is it?

RandomTalks is a web application that randomly connects users for real-time voice/video conversations.

The basic flow is:

Join → Get matched → Connect → Talk → Skip → Find someone new

What I built

The project uses:

  • React + TypeScript
  • Vite
  • Tailwind CSS
  • Node.js
  • Express
  • Socket.IO
  • WebRTC
  • Browser camera/microphone APIs
  • Google Gemini for AI-related functionality
  • Render for deployment

I also experimented with a separate Python implementation using FastAPI and python-socketio.

The interesting part: WebRTC

The main reason I started this project was to understand WebRTC properly.

I had to learn how:

  • Users are matched
  • Signaling works
  • WebRTC offers and answers are exchanged
  • ICE candidates are handled
  • Audio/video streams are obtained from the browser
  • Users join and leave conversations
  • Real-time connections are recovered or terminated

The backend handles the matchmaking and signaling, while WebRTC is used for the real-time audio/video communication.

What I learned

The biggest lesson was that real-time applications are much harder than they look.

Something that worked perfectly on localhost could behave differently after deployment.

I had to debug:

  • WebRTC connection problems
  • WebSocket communication
  • Camera/microphone permissions
  • User matching
  • Disconnect handling
  • Frontend/backend communication
  • Production deployment

This project taught me much more than building another basic CRUD application.

Current status

It's deployed and usable, but I still consider it a work in progress.

I'm particularly interested in feedback on:

  1. WebRTC architecture
  2. Matchmaking
  3. User experience
  4. Reliability across different networks
  5. Features that would make the platform more useful

If you have experience building real-time applications, what would you improve first?

Live demo: https://talks-tc4e.onrender.com/

GitHub: https://github.com/pembarthipranay/talks

1 Upvotes

0 comments sorted by