On-demand solutions

Add a chat feature into your on-demand app

Use our chat API and pre-built UI and get it easily done in a few hours. Allow your customers and service providers to effectively communicate with each other.
Chat Inbox illustration
Local Heroes

Real-time chat between customers and service providers

It makes for a more efficient and smoother experience between all parties involved. Giving users a way to quickly message each other when let's say, a taxi is not on time or an order is late, builds positive relationships between service providers and customers.

Chat popup example illustration
We would have had to spend more engineering time implementing our second choice which was more flexible and customisable, but not game-changing at the time, so we decided to use TalkJS.
Matias Anaya avatar
Matias Anaya
Software Engineer, Kaddy

Flutter and React Native SDKs available

You can integrate TalkJS into your Flutter or React Native app without having to write a single line of JavaScript. With these two SDKs, integrating TalkJS feels natural to both Flutter and React Native developers.

1// Synchronize user data and set up
2import 'package:flutter/material.dart';
3import 'package:talkjs_flutter/talkjs_flutter.dart';
5void main() {
6 runApp(const MyApp());
9class MyApp extends StatelessWidget {
10 const MyApp({Key? key}) : super(key: key);
12 // This widget is the root of your application.
13 @override
14 Widget build(BuildContext context) {
15 final session = Session(appId: 'YOUR_APP_ID');
17 final me = session.getUser(
18 id: '123456',
19 name: 'Alice',
20 email: ['alice@example.com'],
21 photoUrl: 'https://talkjs.com/images/avatar-1.jpg',
22 welcomeMessage: 'Hey there! How are you?',
23 role: 'default',
24 );
26 session.me = me;
28 final other = session.getUser(
29 id: '654321',
30 name: 'Sebastian',
31 email: ['Sebastian@example.com'],
32 photoUrl: 'https://talkjs.com/images/avatar-5.jpg',
33 welcomeMessage: 'Hey, how can I help?',
34 role: 'default',
35 );
37 final conversation = session.getConversation(
38 id: Talk.oneOnOneId(me.id, other.id),
39 participants: {Participant(me), Participant(other)},
40 );
42 return MaterialApp(
43 title: 'TalkJS Demo',
44 home: Scaffold(
45 appBar: AppBar(
46 title: const Text('TalkJS Demo'),
47 ),
48 body: ChatBox(
49 session: session,
50 conversation: conversation,
51 ),
52 ),
53 );
54 }

With TalkJS you get a customisable built-in notification system

We integrated with 3rd party services so you don't have to. Notify users on any channel. TalkJS supports email, mobile, SMS, and browser notifications out of the box. You don't need to assemble several services to get everything working. We take care of what's under the hood as well as the look and feel of the notifications.

Push notifications example illustration
Get started

Integrate chat with a few lines of code

You just need to tell us which conversation to display, who's chatting, and where to show it on the page. We take care of the rest! And if you want a deeper integration, we have all the APIs you'll need to add functionality or integrate into your own systems.

1<Session appId="9352938974" userId={me.id}>
2 <Chatbox
3 conversationId={conversation.id}>
4 </Chatbox>

Tune the look and feel of your chat

You can deeply customise the chat UI with HTML and CSS. With TalkJS Themes you have complete control over the styling, the layout, and document structure of the chat messages and the possibility to show metadata.

API code snippet illustration
Now we can see how many clients and freelancers are interacting with one another. We can look at our dashboard and get broad overviews of what is happening within the application.
Matt Harrison avatar
Matt Harrison
VP of Strategy, FreeUp