Built a self-hosted messenger.Encryption: X25519 key exchange, XChaCha20-Poly1305 for messages. New devices require approval from a trusted device before key exchange. Server never touches plaintext.LAN mode: UDP broadcast on :45678, clients discover each other and exchange public keys automatically. Stack: Flutter (Android, Windows, macOS, Linux).Still in beta.https://github.com/wardcore-dev/onyx#FOSS #Selfhosted #Privacy #Flutter #OpenSource