Chat

Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Alternatives To Chat
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Botkit11,1371,9201523 months ago85March 23, 202242mitTypeScript
Botkit is an open source developer tool for building chat bots, apps and custom integrations for major messaging platforms.
Chat10,76712 days ago159July 07, 202332gpl-3.0Go
Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots
Bottender4,08238236 months ago215November 10, 202172mitTypeScript
⚡️ A framework for building conversational user interfaces.
Messaging Apis1,87149228 months ago37January 11, 202111mitTypeScript
Messaging APIs for multi-platform
Tmi.js1,468427882 months ago61July 05, 202232mitJavaScript
💬 Javascript library for the Twitch Messaging Interface. (Twitch.tv)
Integrations7254266 years ago7July 01, 201730agpl-3.0JavaScript
Connect your App to Multiple Messaging Channels with the W3C Open standard.
Stealth555773 months ago40March 29, 202217mitRuby
An open source Ruby framework for text and voice chatbots. 🤖
Botonic3991512 hours ago106September 22, 202252mitTypeScript
Build chatbots and conversational experiences using React
Awesome Chatbot224
5 years ago2
A collection of awesome things regarding chat bots
Swiftychat210
23 days ago3apache-2.0Swift
SwiftUI Chat UI (Client) Framework & Documentation to get started!
Alternatives To Chat
Select To Compare


Alternative Project Comparisons
Readme

Tinode Instant Messaging Server

Instant messaging server. Backend in pure Go (license GPL 3.0), client-side binding in Java, Javascript, and Swift, as well as gRPC client support for C++, C#, Go, Java, Node, PHP, Python, Ruby, Objective-C, etc. (license Apache 2.0). Wire transport is JSON over websocket (long polling is also available) for custom bindings, or protobuf with gRPC.

Tinode is not XMPP/Jabber. It is not compatible with XMPP. It's meant as a replacement for XMPP. On the surface, it's a lot like open source WhatsApp or Telegram.

This is beta-quality software: feature-complete and stable but probably with a few bugs or missing features. Follow instructions to install and run or use one of the cloud services below. Read API documentation.

Why?

The promise of XMPP was to deliver federated instant messaging: anyone would be able to spin up an IM server capable of exchanging messages with any other XMPP server in the world. Unfortunately, XMPP never delivered on this promise. Instant messengers are still a bunch of incompatible walled gardens, similar to what AoL of the late 1990s was to the open Internet.

The goal of this project is to deliver on XMPP's original vision: create a modern open platform for federated instant messaging with an emphasis on mobile communication. A secondary goal is to create a decentralized IM platform that is much harder to track and block by the governments.

An explicit NON-goal: we are not building yet another Slack replacement.

Installing and running

See general instructions or docker-specific instructions.

Getting support

Helping out

  • If you appreciate our work, please help spread the word! Sharing on Reddit, HN, and other communities helps more than you think.
  • Consider buying paid support: https://tinode.co/support.html
  • If you are a software developer, send us your pull requests with bug fixes and new features.
  • If you use the app and discover bugs or missing features, let us know by filing bug reports and feature requests. Vote for existing feature requests you find most valuable.
  • If you speak a language other than English, translate the apps into your language. You may also review and improve existing translations.
  • If you are a UI/UX expert, help us polish the app UI.
  • Use it: install it for your colleagues or friends at work or at home.

Public service

A public Tinode service is available. You can use it just like any other instant messenger. Keep in mind that demo accounts present in sandbox are not available in the public service. You must register an account using valid email in order to use the service.

Web

TinodeWeb, a single page web app, is available at https://web.tinode.co/ (source). See screenshots below.

Android

Tinode for Android a.k.a Tindroid is stable and functional (source). See the screenshots below. A debug APK is also provided for convenience.

iOS

Tinode for iOS a.k.a. Tinodios is stable and functional (source). See the screenshots below.

Demo/Sandbox

A sandboxed demo service is available at https://sandbox.tinode.co/.

Log in as one of alice, bob, carol, dave, frank. Password is <login>123, e.g. login for alice is alice123. You can discover other users by email or phone by prefixing them with email: or tel: respectively. Emails are <login>@example.com, e.g. [email protected], phones are +17025550001 through +17025550009.

When you register a new account you are asked for an email address to send validation code to. For demo purposes you may use 123456 as a universal validation code. The code you get in the email is also valid.

Sandbox Notes

  • The sandbox server is reset (all data wiped) every night at 3:15am Pacific time. An error message User not found or offline means the server was reset while you were connected. If you see it on the web, reload and relogin. On Android log out and re-login. If the database was changed, delete the app then reinstall.
  • Sandbox user Tino is a basic chatbot which responds with a random quote to any message.
  • As generally accepted, when you register a new account you are asked for an email address. The server will send an email with a verification code to that address and you can use it to validate the account. To make things easier for testing, the server will also accept 123456 as a verification code. Remove line "debug_response": "123456" from tinode.conf to disable this option.
  • The sandbox server is configured to use ACME TLS implementation with hard-coded requirement for SNI. If you are unable to connect then the most likely reason is your TLS client's missing support for SNI. Use a different client.
  • The default web app loads a single minified javascript bundle and minified CSS. The un-minified version is also available at https://sandbox.tinode.co/index-dev.html
  • Docker images with the same demo are available.
  • You are welcome to test your client software against the sandbox, hack it, etc. No DDoS-ing though please.

Features

Supported

  • Multiple native platforms:
  • User features:
    • One-on-one and group messaging.
    • Video and voice calls. Voice messages.
    • Channels with unlimited number of read-only subscribers.
    • All chats are synchronized across all devices.
    • Granular access control with permissions for various actions.
    • User search/discovery.
    • Rich formatting of messages markdown-style: *style* → style, with inline images, videos, file attachments.
    • Forms and templated responses suitable for chatbots.
    • Verified/staff/untrusted account markers.
    • Message status notifications: message delivery to server; received and read notifications; typing notifications.
    • Most recent message preview in contact list.
    • Server-generated presence notifications for people, group chats.
    • Forwarding and replying to messages.
    • Editing sent messages.
  • Administration:
    • Granular access control with permissions for various actions.
    • Support for custom authentication backends.
    • Ability to block unwanted communication server-side.
    • Anonymous users (important for use cases related to tech support over chat).
    • Plugins to extend functionality, for example, to support moderation or chatbots.
    • Scriptable command-line tool for server administration.
  • Performance, reliability and development:
    • Sharded clustering with failover.
    • Storage and out of band transfer of large objects like images or document files using local file system or Amazon S3 (other storage systems can be supported with media handlers).
    • JSON or protobuf version 3 wire protocols.
    • Bindings for various programming languages:
      • Javascript with no external dependencies.
      • Java with dependencies on Jackson and Java-Websocket. Suitable for Android but with no Android SDK dependencies.
      • Swift with no external dependencies.
      • C/C++, C#, Go, Python, PHP, Ruby and many other languages using gRPC.
    • Choice of a database backend. Other databases can be added with by writing adapters.

Planned

  • Federation.
  • Location and contacts sharing.
  • Previews of attached documents, links.
  • Recording video messages.
  • Video/audio broadcasting.
  • Group video/audio calls.
  • Attaching music/audio other than voice messages.
  • Better emoji support.
  • Different levels of message persistence (from strict persistence to "store until delivered" to purely ephemeral messaging).
  • Message encryption at rest.
  • End to end encryption with OTR for one-on-one messaging and undecided method for group messaging.
  • Full text search in messages.

Translations

All client software has support for internationalization. The following translations are provided:

Language Server Webapp Android iOS
English
Chinese (simplified)
Chinese (traditional)
French
German
Hindi
Korean
Portugese
Romanian
Russian
Spanish
Ukrainian
Vietnamese

More translations are welcome. In addition to languages listed above, particularly interested in Arabic, Bengali, Indonesian, Urdu, Japanese, Turkish, Persian.

Third-Party

Projects

Licenses

Screenshots

Android

Android screenshot: list of chats Android screenshot: one conversation Android screenshot: video call

iOS

iOS screenshot: list of chats iOS screenshot: one conversation iOS screenshot: video call

Desktop Web

Desktop web: full app

Mobile Web

Mobile web: contacts Mobile web: chat Mobile web: topic info

SEO Strings

Words 'chat' and 'instant messaging' in Chinese, Russian, Persian and a few other languages.

  • 聊天室 即時通訊
  • чат мессенджер
  • インスタントメッセージ
  • 인스턴트 메신저
  • پیام رسان فوری
  • تراسل فوري
  • فوری پیغام رسانی
  • Nhắn tin tức thời
  • anlık mesajlaşma sohbet
  • mensageiro instantâneo
  • pesan instan
  • mensajería instantánea
  • চ্যাট ইন্সট্যান্ট মেসেজিং
  • चैट त्वरित संदेश
  • তাৎক্ষণিক বার্তা আদান প্রদান
Popular Messaging Projects
Popular Chatbot Projects
Popular Messaging Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Golang
Email
Telegram
Chatbot
Collaboration
Messaging
Webrtc
Messenger
Whatsapp
Xmpp
Chat Application
Instant Messaging