Build chat into your Flutter app with TalkJS

Quickly embed a customizable chat experience into your Flutter app using the best chat APIs, feature-rich SDKs, and highly customizable widgets.
Hello, Magnus. Just a reminder, your dissertation deadline is this week. How are you coming along?
MagnusJust nowHi! I'm almost done, just finalizing edits and checking my citations.
Great to hear! Anything you're worried about?
Just now
MagnusJust nowJust aiming to meet all the guidelines. I'll finish on time, I'm confident of that.
If you need a review or have questions, let me know. Be sure to submit by the deadline.
Just now
MagnusJust nowWill do. Thanks for the support!
Say something...
Flutter SDK

Connect users with a fully customizable chat using our real-time messaging infrastructure that works great with Flutter.

Drop-in chat UI

Ship faster by using pre-built components that are highly customizable. Get up and running in just 10 minutes.


All the essential messaging features you need. Replies, mentions, typing indicators, link previews, emojis, and more.

Working with Flutter and TalkJS

Ship faster, simplify your stack, and save on development costs by using the best chat APIs and a feature-rich Flutter chat SDK. It's all you need to add a fully-featured chat into your app in minutes, instead of months.

2 // Synchronise user data and set up
3 import 'package:flutter/material.dart';
4 import 'package:talkjs_flutter/talkjs_flutter.dart';
6 void main() {
7 runApp(const MyApp());
8 }
10 class MyApp extends StatelessWidget {
11 const MyApp({Key? key}) : super(key: key);
13 // This widget is the root of your application
14 @override
15 Widget build(BuildContext context) {
16 final session = Session(appId: 'YOUR_APP_ID');
18 final me = session.getUser(
19 id: '123456',
20 name: 'Alice',
21 email: ['alice@example.com'],
22 photoUrl: 'https://talkjs.com/images/avatar-1.jpg'
23 );
25 session.me = me;
27 final other = session.getUser(
28 id: '654321',
29 name: 'Sebastian',
30 email: ['Sebastian@example.com'],
31 photoUrl: 'https://talkjs.com/images/avatar-5.jpg'
32 );
34 final conversation = session.getConversation(
35 id: Talk.oneOnOneId(me.id, other.id),
36 participants: {Participant(me), Participant(other)},
37 );
39 return MaterialApp(
40 title: 'TalkJS Demo',
41 home: Scaffold(
42 appBar: AppBar(
43 title: const Text('TalkJS Demo'),
44 ),
45 body: ChatBox(
46 session: session,
47 conversation: conversation,
48 ),
49 ),
50 );
51 }
52 }
Because implementing TalkJS was as fast and easy as it was, we were able to greenlight and move this project along very quickly. Had we not chosen this path, the feature would have either been delayed, or shelved due to the resources needed to implement it.
Sean Elliot
Engineering Manager, StyleSeat
Ready-made chat widgets you can customize

The Flutter SDK comes with UI widgets that are forward-compatible and will keep working on future devices and new features. 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