A first-class messaging experience

Power-up your user experience with great messaging features.
TalkJS has everything you need in a chat app, out of the box.

Real-time messaging

TalkJS turns your platform into a real-time messaging app, much like WhatsApp or Facebook Messenger. Complete with features you need like file transfer, location sharing, emoji, and more.

Desktop notifications and mobile push notifications let users respond quickly while doing other things.

Email and SMS fallback

Always keep your users in the loop. If a user is sent a message while offline, TalkJS sends an email or SMS (or both, depending on your configuration). Our battle-tested infrastructure ensures direct and speedy delivery.

Users can reply to the mail directly or jump back in to your platform - either way, their response will safely reach its destination.

Of course, you can fully customize the email and SMS message body.

Full conversation history

Let your users get back to a conversation whenever they want. TalkJS stores all messages safely and securely so you don't have to.

The TalkJS Inbox View shows your users a history of all conversations and lets them respond in any of them, all inside a familiar and well-designed interface.

Chat Pop-up

Bring a single conversation into focus from anywhere on your platform with our chat pop-up. You can actually test this one live from this website to chat with us :)

Stay in full control over who can talk to who, with just a few lines of code.

Responsive cross-browser UX

Years of sweat and tears went into making the TalkJS messaging UI fast, fun, and easy to use. Fully responsive, TalkJS works great on nearly all mobile phones and computers.

We frequently test TalkJS on the last 2 desktop and mobile versions of Chrome, Safari, Firefox, Edge and Opera, as well as Internet Explorer 9 and up.

Multi-Language User Interface

TalkJS has built-in localization features that allow you to display the text (e.g. "Send") of the interfaces to the user in their own language.

There are two ways to set the language in TalkJS. You can change the default language in the Dashboard for all of your platform's users. If you need to support multiple languages for different, you can set a language per User Configuration.

Channels, groups, and topics

In TalkJS, you can shape conversations any way you like. Create a private one-on-one conversation or engage multiple users in a channel, topic, group, or chat room. It's all about shaping a TalkJS conversation to fit your use case. You can add users to an existing conversation or create a multi-user chat from scratch. With TalkJS, it's easy to create a place where meaningful conversations thrive.

Customizable design

Pick one of our expertly designed TalkJS Themes and customize it to perfectly fit your brand.

A theme is simply a CSS file that gives you control over the most important parts of the interface. Stay in control of the look and feel but leave the heavy lifting of building a real-time messenger to TalkJS.

Developer-friendly API

Our JavaScript API lets you connect your own analytics or UI elements with ease. Events can notify you when new messages are written or received, and when the user navigates between conversations. Connect the user's customer journey with the conversation by injecting system messages. Check out the docs.

Our REST API allows you to manage your users, conversations and messages. Webhooks notify your backend of events happening: e.g. new messages and new conversations, and many more. Check out the Webhook docs.

Activity history & dashboard

See who talks to who and monitor their messages1) in the TalkJS Dashboard. This lets you stay in full control of communication so you can jump in when necessary.

And much more


Show a "you have new messages!" badge in your header with just a few lines of code.


Desktop notifications on new messages keep your users engaged even when they're not looking.


TalkJS also ships with a pop-up widget, perfect for ecommerce sites.
(It looks like this)

Read indicators

Let your users know that a message has been delivered to our servers or read by the recipient.

Typing indicators

Real-time typing indicators help keep your users engaged

Suppress contact information

Prevent users from exchanging email addresses, phone numbers and website addresses. Configure exceptions in detail.