React widget
With a TalkJS React widget you can take frontend development out of the equation. Get going with the default widget, or customize the design to fit your app.
import Talk from 'talkjs';
import { useCallback } from 'react';
function Chat() {
const syncUser = useCallback(
() =>
new Talk.User({
id: 'nina',
name: 'Nina',
email: 'nina@example.com',
photoUrl: 'https://talkjs.com/new-web/avatar-7.jpg',
welcomeMessage: 'Hi!',
}),
[]
);
return (
<Session appId="tPKdyezd" syncUser={syncUser}>
// UI component will go here...
</Session>
);
}
export default Chat;


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.
import { Session, Chatbox } from "@talkjs/react";
<Session appId="t824ba8" userId="pete">
<Chatbox conversation="workshop" className="chatbox"/>
</Session>You can customize the chat UI with HTML and CSS to exactly meet your needs. With TalkJS Themes you have complete control over the styling, layout, and document structure of the chat messages. You can even show metadata.