Speaker.app is an alternative free speech audio platform that is compatible on any device that supports a modern web browser.
No User Account or Password Required / Completely Anonymous
No user account or password is necessary to start talking.
User identities are based on Ethereum blockchain and are automatically generated when a user connects. The user identity is not currently written to the real blockchain, but serves as an internal identification based on Ethereum addresses.
The server only "knows" peers by their Ethereum address and (more temporary) Socket.io id.
Quasi-Decentralized & Open-Source
Calls are routed through other peers which choose to be network hosts; our server acts as a WebRTC signaling mechanism (via Socket.io) and for distributing the app on the internet.
There is a centralized MongoDB instance which contains network routing information to room hosts, and our intention for others who do not want this type of centralization to host it themselves.
Speaker.app is open-source and available on GitHub.
Testing and Hosting
Real devices are utilized for testing using BrowserStack and real Mac Minis with Apple M1 processors from Mac Mini Vault to do transcoding tests (and are very pleased with the performance). We host our Docker-based infrastructure with Vultr, using their Cloud Compute instances.
Speaker.app establishes a proxy through the host's web browser, which transcodes streams from each participant to every other participant, acting a bit like an MCU (Multipoint Conferencing Unit). and an SFU (Selective Forwarding Unit), progromatically able to emulate both at the same time, while also able to manipulate broadcast streams in real-time.
One of the greatest advantages to such an architecture is that it offers the ability to serve thousands of sub-networks from a single Node.js server, while the transcoding web browsers handle the work of transcoding the streams to and from each participant.
It also means that updates to the system are easily propagated to all hosting transcoders (web browsers) and any clients (also web browsers), as a refresh of the system will result in the latest software being run, automatically.
Furthermore the network is designed (and an ongoing consideration to improve) to transmit as little information through the server, and mostly rely on P2P (peer-to-peer; or in our case peer-to-browser-based-network-host) connectivity established by WebRTC.
To contribute, however slightly, to the commonwealth of all human innovation and experience.