Mitsi – Mediasoup Example Project: An Open-Source Video Conferencing Built on Mediasoup
Hey everyone,
I wanted to share a project I’ve been working on for the past few months: Mitsi, an open-source video conferencing platform powered heavily by Mediasoup.
I built Mitsi to work with Mediasoup in depth and to create a clean, simple starting point for anyone looking to build a WebRTC/Mediasoup application. If you’re exploring Mediasoup or planning to build something similar, the codebase might be a helpful reference.
Tech Stack
React – web client
Mediasoup Client – WebRTC frontend
Mediasoup SFU – media routing
SocketIO – signaling between the web client and signaling service
gRPC – communication between the signaling service and media service
Nodejs – backend services
Redis – state sharing, caching, pub/sub
Docker - application containerization
Umami – analytics platform
Prometheus + Grafana – metrics and monitoring
Architecture Overview
React Web Client
↓ (Socket.IO)
Signaling Service
↓ (gRPC)
Media Service (Mediasoup SFU)
↓ (WebRTC Transports)
React Web Client
Really appreciate the clean UI, it looks great. I haven’t had the chance to dive deep into the codebase yet, but from what I’ve seen so far it looks very well structured and promising.
Quick question: is the live demo currently limited to 2 participants per room? I couldn’t join with more than two users, so just wanted to confirm. Also noticed a few buttons that don’t seem to trigger any actions yet, not sure if they’re still under development.
I’m also open to collaborating with anyone working on Mediasoup-based projects. If you’re building something or need help, feel free to reach out.
If you have pleasure, feel free to check out our WebRTC projects. MiroTalk SFU is also based on mediasoup:
No, several participants can join. However you will be disconnected from your previous session if you are joining same room multiple times via another tab in same browser window.
Also, our latest deployment includes fixes for those buttons you noticed.