Goals
Loose notes; a work in progress.
Decentralized architecture
In order to allow for lateral growth and avoid a single point of failure, chat servers should be easy to set up and designed in a way that makes horizontal scaling natural.
As much as is feasible, identification, authentication, authorization and verification should take place on the client (e.g. verification of message signatures).
An open and well-documented protocol
All socket events should be documented, including their designated number, parameters and purpose. An alternative to documentation is to provide a no-nonsense reference implementation of both server-side and client-side software.
Privacy via cryptography, not via trust
This means end-to-end encryption of private conversations, not including password protected or invite-only chat rooms, but rather direct messaging and .
Users should be able to easily delete their own chat history.
More...
Native desktop/mobile applications (React Native for mobile, Electron.js for desktop, possibly other depending how feasible a port from React Web to another language is).
Bot development libraries.
Last updated