<aside> 💡 Principle: our codebase and stack should be as simple and as re-usable as possible. Yes, centralization and 3rd party services are lame, but sometimes it’s necessary.

Real-time messaging and live streaming can’t happen (yet) without centralized servers, and we aren’t good enough with back-end to craft up a solution that would allow us to not rely on a 3rd party service.

What we can try is to guarantee the solution will use ensure data privacy, safety and end-to-end encryption.

</aside>

🧲 Real-time status change (online/offline) and room change (*potentially not needed with a 3rd party service for live voice chat)

<aside> 💡 Goals:

All of the above in real time, to all the users currently using the app. → a DB ; an API to interact with it**

</aside>

https://www.youtube.com/watch?v=1BfCnjr_Vjg

tRPC end-to-end typesafe API ; tRPC supports websockets out of the box

https://www.youtube.com/watch?v=f9KPBIIKCHY

prisma Type-safe database client

https://www.youtube.com/watch?v=EEDGwLB55bI

https://www.youtube.com/watch?v=rLRIB6AF2Dg

mysql database

👯 Real-time multi-party audio stream

<aside> 💡 Goals:

</aside>

→ WebRTC // what will we pick for the signaling server ? Try implementing our own or use a 3rd party solution ? are there 3rd party solutions that are open source?

Signaling and video calling - Web APIs | MDN

samples-server/s/webrtc-from-chat at master · mdn/samples-server

https://www.youtube.com/watch?v=WmR9IMUD_CY