
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@connectycube/chat-widget
Advanced tools
A customizable React chat widget built on the ConnectyCube platform, enabling real-time messaging, calls, and user engagement in any web app.
A React component that seamlessly integrates ConnectyCube's real-time chat capabilities into your web applications. This widget offers an out-of-the-box solution for embedding chat features—such as instant messaging, user presence, and file sharing—without the overhead of building a complete chat system from scratch.
The ConnectyCube Web Chat Widget for React is designed to simplify the process of adding chat functionality to your React apps. With a few configuration steps and minimal code, you can quickly enable robust, real-time communication powered by ConnectyCube. Key benefits include:
Split-view chat widget:

Single-view chat widget:

https://developers.connectycube.com/js/chat-widget
# npm
npm install @connectycube/chat-widget
# yarn
yarn add @connectycube/chat-widget
Add the following scripts on your html page somewhere in head element:
<script src="https://unpkg.com/react@18/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" crossorigin></script>
<script src="https://unpkg.com/connectycube@latest/dist/connectycube.min.js"></script>
<script src="https://unpkg.com/@connectycube/chat-widget@latest/dist/index.umd.js"></script>
Before you start, make sure:
Import and place the following component in your app:
import ConnectyCubeChatWidget from "@connectycube/chat-widget";
...
<ConnectyCubeChatWidget
appId="111"
authKey="11111111-2222-3333-4444-55555555"
config={{ debug: { mode: 1 } }}
userId="112233"
userName="Samuel"
showOnlineUsersTab={false}
splitView={true}
/>
// userName - how other users will see your user name
// userId - a User Id from your system
See chat widget code samples https://github.com/ConnectyCube/connectycube-chat-widget-samples/tree/main/react-ts as a reference for faster integration.
Place the following script in your app:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... -->
</head>
<body>
<!-- ... -->
<!-- @connectycube/chat-widget - start -->
<script src="https://unpkg.com/react@18/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js" crossorigin></script>
<script src="https://unpkg.com/connectycube@4/dist/connectycube.min.js"></script>
<script src="https://unpkg.com/@connectycube/chat-widget@latest/dist/index.umd.js"></script>
<script>
const chatWidgetContainer = document.createElement('div');
chatWidgetContainer.id = 'ConnectyCube_chat-widget';
document.body.appendChild(chatWidgetContainer);
const props = {
appId: 111,
authKey: '11111111-2222-3333-4444-55555555',
config: { debug: { mode: 1 } },
userId: '112233', // a User Id from your system
userName: 'Samuel', // how other users will see your user name
showOnlineUsersTab: false,
splitView: true,
hideWidgetButton: false,
onOpenChange: (open) => {
console.log('Chat widget is open:', open);
},
onUnreadCountChange: (count) => {
console.log('Unread messages count:', count);
},
};
ReactDOM.createRoot(chatWidgetContainer).render(React.createElement(ConnectyCubeChatWidget, props));
// use the code below as an example to toggle the chat widget visibility state for custom button
document.getElementById('someCustomButton').addEventListener('click', () => {
ConnectyCubeChatWidget.toggle();
});
</script>
<!-- @connectycube/chat-widget - end -->
</body>
</html>
See chat widget code samples https://github.com/ConnectyCube/connectycube-chat-widget-samples/tree/main/vanilla as a reference for faster integration.
See all available props https://developers.connectycube.com/js/chat-widget/#props
See all available recipes https://developers.connectycube.com/js/chat-widget/#recipes
When using @connectycube/chat-widget in SSR environments (e.g., Next.js, Remix), some native Node.js modules like events may cause errors due to differences between Node and browser environments. Here are recommendations to ensure smooth SSR integration:
# npm
npm install @connectycube/chat-widget
npx connectycube patch-ssr # Apply SSR patches
# npx connectycube revert-ssr # Revert SSR patches
# yarn
yarn add @connectycube/chat-widget
yarn connectycube patch-ssr # Apply SSR patches
# yarn connectycube revert-ssr # Revert SSR patches
The connectycube CLI will be available as part of the connectycube package, which is installed automatically as a dependency of @connectycube/chat-widget. This script applies fixes to make the SDK compatible with SSR environments.
Join our Discord community to get real-time help from our team
CHANGELOG.md in the main repository.
FAQs
A customizable React chat widget built on the ConnectyCube platform, enabling real-time messaging, calls, and user engagement in any web app.
The npm package @connectycube/chat-widget receives a total of 273 weekly downloads. As such, @connectycube/chat-widget popularity was classified as not popular.
We found that @connectycube/chat-widget demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.