To build the audio conversation part, weβre gonna need to connect multiple people and allow them to send and receive audio streams. For this, we will need to use WebSockets, a database to store the user/channel states and WebRTC, and an API to easily retrieve and update user/channel states.
<aside> π‘ WebSocket is a web communication protocol that can be used to build real-time communication apps.
</aside>
<aside> π‘ WebRTC is a technology that enables real-time communication between web browsers (like video and voice communication).
</aside>
In a conversation, we need to identify who we are talking to. We could even determine who can join our conversation on certain criteria, like a belonging to a same group for instance.
This notion implies the use of a social graph.
<aside> π‘ A social graph is a global mapping of people, groups, organizations and how they are related in an online social network. When you tag a friend, like a page, or check in a place on Facebook, you are completing your social graph.
</aside>
In our case, we can use Lens Protocol to build the social part of our app and manage profiles and relationships between our users.
From their website
Lens Protocol is a composable and decentralized social graph, ready for you to build on so you can focus on creating a great experience, not scaling your users.
<aside> π‘ A monorepo is a single repository containing multiple distinct projects, with well-defined relationships.
</aside>