# Mitsi – Mediasoup Example Project: An Open-Source Video Conferencing Built on Mediasoup

**URL:** <https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919>\
**Category:** mediasoup libraries\
**Created:** [November 19, 2025, 2:12pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919 "2025-11-19T14:12:27Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![obrucheoghene](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/obrucheoghene/32/2451_2.png) [@obrucheoghene](https://mediasoup.discourse.group/u/obrucheoghene)\
**Post date:** [November 19, 2025, 2:12pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/1 "2025-11-19T14:12:27Z")

</div>

**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**

```auto
React Web Client 
     ↓ (Socket.IO)
Signaling Service 
     ↓ (gRPC)
Media Service (Mediasoup SFU)
     ↓ (WebRTC Transports)
React Web Client

```

### **Links**

🔗 **Live Demo:** [https://mitsi.app](https://mitsi.app/)  
💻 **GitHub Repo:** [https://github.com/softhon](https://github.com/softhon)

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.

Happy to share, learn, and connect with the community!

 ![Screenshot 2025-11-17 at 3.09.41 PM](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/1/1543d1ee0cb7089901e775c55690692a39b3b9e3.jpeg)

 ![mitsi-ui](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/c/c1fd8e41a7eae67bda9cc7143f16e09eefb8315e.jpeg)

---

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [November 24, 2025, 1:38pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/2 "2025-11-24T13:38:39Z")

</div>

Hey, thanks a lot for sharing Mitsi!

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](https://sfu.mirotalk.com) is also based on mediasoup:

👉 [https://github.com/miroslavpejic85/mirotalksfu](https://github.com/miroslavpejic85/mirotalksfu)

Keep up the great work! 🚀

---

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [November 25, 2025, 7:25am UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/3 "2025-11-25T07:25:13Z")

</div>

By the way, I gave the first GitHub ⭐ on the _mitsi-web_ repo 😉

---

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [November 25, 2025, 7:45am UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/4 "2025-11-25T07:45:36Z")

</div>

> [@miroslavpejic85](#):
>
> 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.

Ah ok, I just realized that if I open the same room in multiple tabs of the same browser, only one tab can join.

---

<div class="post-metadata">

**Author:** ![obrucheoghene](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/obrucheoghene/32/2451_2.png) [@obrucheoghene](https://mediasoup.discourse.group/u/obrucheoghene)\
**Post date:** [November 25, 2025, 4:57pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/5 "2025-11-25T16:57:19Z")

</div>

> [@miroslavpejic85](#):
>
> 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.

Thank you.

> [@miroslavpejic85](#):
>
> 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

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.

> [@miroslavpejic85](#):
>
> If you have pleasure, feel free to check out our WebRTC projects. [MiroTalk SFU](https://sfu.mirotalk.com) is also based on mediasoup:

Great, thanks for sharing, Will check it out.

---

<div class="post-metadata">

**Author:** ![obrucheoghene](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/obrucheoghene/32/2451_2.png) [@obrucheoghene](https://mediasoup.discourse.group/u/obrucheoghene)\
**Post date:** [November 25, 2025, 4:57pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/6 "2025-11-25T16:57:59Z")

</div>

Thank you so much 🤗

---

<div class="post-metadata">

**Author:** ![qingxin1212](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/qingxin1212/32/2998_2.png) [@qingxin1212](https://mediasoup.discourse.group/u/qingxin1212)\
**Post date:** [December 18, 2025, 2:41am UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/7 "2025-12-18T02:41:19Z")

</div>

I would like to inquire whether this project has the capability to record video streams in mp4 or other file formats?

---

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [December 18, 2025, 10:28pm UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/8 "2025-12-18T22:28:56Z")

</div>

Hey **Obruche** ,

You’re welcome, I really like the project! It’s been genuinely inspiring and has motivated me to improve my own project as well. Keep up the awesome work 👏

I’d like to share a few small suggestions and possible improvements I noticed while using the app. I hope these are helpful:

### Home page

- **Menu bar:** Clicking on _Documentation_, _Projects_, or _Community_ doesn’t seem to trigger any action.

- **Footer:** The links for _Documentation_, _API_, and _Support_ also appear to be inactive.

### Before joining a room

- The selected **microphone and camera devices** , as well as their **enabled/disabled state** , are not preserved.

- Each time a room is joined, the microphone and camera start **disabled** , and the **first device in the list** is selected by default.

- It would be great if the app could remember the user’s last selected devices and their on/off state.

### Room experience

- When new microphone or camera devices are connected or removed, the device selection lists don’t refresh automatically.

- The emoji (smile) icon in the chat doesn’t respond when clicked.

- In the participants list, the settings button (three dots) doesn’t seem to open any options when clicked.

- To: Everyone” appears before the chat footer. It’s unclear whether this should always remain as is, or if the intention was to allow selecting individual participants to chat with.

- The same participant name can be used by multiple users.

### Documentation

It would be really nice to have:

- A clear **quick-start guide** for running everything locally on a PC for beginners.

- Documentation for **self-hosting** , especially examples using **Docker** or **PM2**.

Overall, this is a fantastic project, and I truly appreciate the effort you’ve put into it. Thanks again for sharing it with the community, and best of luck moving forward!

Kind regards,  
**Miroslav**

---

<div class="post-metadata">

**Author:** ![obrucheoghene](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/obrucheoghene/32/2451_2.png) [@obrucheoghene](https://mediasoup.discourse.group/u/obrucheoghene)\
**Post date:** [December 22, 2025, 10:08am UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/10 "2025-12-22T10:08:58Z")

</div>

Wooow, this is so detailed .  
Thank you so much for this detailed feedback and recommendation.  
Thank you for the time you put into it 🙌.  
I am going to follow through and make the fixes.

---

<div class="post-metadata">

**Author:** ![obrucheoghene](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/obrucheoghene/32/2451_2.png) [@obrucheoghene](https://mediasoup.discourse.group/u/obrucheoghene)\
**Post date:** [December 22, 2025, 10:10am UTC](https://mediasoup.discourse.group/t/mitsi-mediasoup-example-project-an-open-source-video-conferencing-built-on-mediasoup/6919/11 "2025-12-22T10:10:38Z")

</div>

Not yet, but development is in progress
