Host your own private messaging server that you fully control, as an open-source alternative to WhatsApp or Telegram.
Build a chat feature into your app using the gRPC API, with client libraries available in Python, Node, C++, and Java.
Create broadcast channels for one-to-many announcements with unlimited read-only subscribers.
Integrate chatbot interactions using rich messages that include inline images, file attachments, and embedded forms.
Docker images are provided, requires configuring a database and running the Go server before any client can connect.
Tinode is a self-hosted instant messaging platform. The server is written in Go and licensed under GPL 3.0. Client apps are available for Android (written in Java), iOS (written in Swift), and the web (React.js), as well as a scriptable command-line tool. The README describes it as similar to an open-source version of WhatsApp or Telegram. The project was built in response to the shortcomings of XMPP, an older messaging standard that was supposed to allow any server to exchange messages with any other server but never worked reliably in practice. Tinode aims to deliver that same goal: a modern federated messaging platform where anyone can run their own server. A stated secondary goal is to make it harder for governments to monitor or block communications. The README is explicit that this is not meant to be a workplace tool or Slack replacement. Core features include one-on-one and group messaging, video and voice calls, voice messages, and broadcast channels with unlimited read-only subscribers. Messages can contain rich formatting (similar to Markdown), inline images, file attachments, and embedded forms for chatbot interactions. Chats sync across all a user's devices, message delivery and read receipts are shown, and typing notifications are supported. Users can forward and reply to messages, edit sent messages, and pin conversations. Access control is described as granular, allowing different permissions for different actions within a group or channel. The server supports third-party clients via gRPC, which is a communication protocol with support for many languages including Python, Node, C++, and Java. A live public service is available at web.tinode.co, and a sandbox environment with test accounts is at sandbox.tinode.co. Docker images are provided for self-hosting. Installation instructions and API documentation are in separate files within the repository.
← tinode on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.