Tinode
Instant messaging platform with self-hosted backend in Go and clients for iOS, Android, web, and command line.
Tinode is an open-source instant messaging platform designed to be self-hosted. The backend is written in Go and supports multiple clients including Swift iOS, Java Android, JavaScript webapp, and a scriptable command line interface. It offers features comparable to WhatsApp and Telegram including group chats, read receipts, message editing, file sharing, push notifications, and video calls via WebRTC. Tinode also supports chatbots and can federate across multiple servers using a custom protocol.