awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jsfiddle avatar

jsfiddle/togetherjs

0
View on GitHub↗
7,006 stars·839 forks·JavaScript·MPL-2.0·19 viewstogetherjs.com↗

Togetherjs

Togetherjs is a real-time collaboration framework designed to synchronize application state, cursors, and navigation across multiple user sessions. It provides a synchronization tool for shared browsing and a signaling server to facilitate peer-to-peer communication.

The project integrates audio chat and media streaming via peer-to-peer technology, allowing collaborators to engage in live voice communication. It includes a presence and identity manager to map session participants to custom profiles, names, and avatars.

The framework covers a broad surface of collaborative capabilities, including user presence tracking, shared navigation following, and the generation of unique collaboration links. It manages state synchronization through the broadcasting of data to keep UI elements consistent and tracks user interactions by displaying remote mouse cursors and click events.

Features

  • Real-Time Collaboration Tools - Provides a framework for real-time collaborative browsing, allowing users to navigate websites and sync cursors together.
  • Application State Synchronizations - Keeps UI elements and data consistent across different user clients by broadcasting state changes via JSON messages.
  • WebSocket Clients and Servers - Implements a WebSocket-based message bus to transport real-time state updates and user events between clients and the server.
  • Signaling Servers - Provides a signaling server to coordinate the initial handshakes required for participants to establish peer-to-peer connections.
  • State Broadcasting Systems - Broadcasts JSON messages to all session participants to keep UI elements and data consistent across different clients.
  • Collaborative Identity Mapping - Links session participants to application profiles by assigning custom names, avatars, and colors.
  • JSON State Synchronization - Uses JSON payloads to broadcast serialized data objects, keeping UI elements and application state consistent across all clients.
  • Collaborative Interaction Sync - Shares cursors and edits in real-time so multiple users can interact on the same page together simultaneously.
  • Collaborative Room Presence Tracking - Tracks and displays a real-time list of active users within a specific multiplayer collaboration session.
  • Interactive Element Synchronization - Implements DOM-element mapping to synchronize cursors and edits across different user browsers in real time.
  • Presence and Identity Managers - Implements a system for tracking active users and mapping session participants to custom avatars and profiles.
  • Co-browsing Tools - Synchronizes the current URL and page content across different clients to enable joint real-time navigation.
  • Presence Tracking - Tracks and displays real-time user activity on a page, mapping participants to specific profiles and avatars.
  • Shared Browsing Synchronization - Synchronizes the current page across multiple clients so users can browse the same domain together in real time.
  • Real-time Messaging - Enables multi-modal communication by combining instant text messaging and voice chat audio during collaboration.
  • Peer-to-Peer Media Libraries - Establishes direct audio and data channels between browsers using WebRTC to reduce server latency.
  • Voice Chat Integrations - Integrates real-time peer-to-peer audio chat directly into the web application for collaborator communication.
  • P2P Voice Chat - Establishes real-time peer-to-peer voice connections for direct audio interaction between collaborators.
  • WebRTC Streaming - Integrates a WebRTC-based system for real-time voice chat and media streaming between collaborators.
  • DOM Synchronization - Refreshes the synchronization process to identify and update elements added to the page after the initial load.
  • Remote Cursor Tracking - Displays remote mouse cursors and click events to show where other users are focusing on a page.
  • Collaboration Link Generators - Provides the ability to generate unique shareable URLs for users to join a specific real-time collaboration session.
  • Real-Time DOM Updates - Updates the state of a website across all connected clients simultaneously using real-time DOM updates.
  • Collaboration Room Routing - Uses unique identifiers in the web address to group users into isolated real-time collaboration rooms.

Star history

Star history chart for jsfiddle/togetherjsStar history chart for jsfiddle/togetherjs

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Togetherjs

Similar open-source projects, ranked by how many features they share with Togetherjs.
  • partykit/partykitpartykit avatar

    partykit/partykit

    5,644View on GitHub↗

    PartyKit is a serverless WebSocket backend platform for building real-time multiplayer applications. It provides a globally distributed edge computing runtime that runs stateful server code close to users, with automatic scaling and hibernation for idle rooms. The platform handles WebSocket connections, HTTP requests, and durable storage without requiring infrastructure management, and includes a client and server SDK with hooks, storage, and Yjs integration for building collaborative features. The platform distinguishes itself through per-room isolation using Durable Objects, where each uniq

    TypeScriptbackendscollaborationcrdts
    View on GitHub↗5,644
  • h2oai/waveh2oai avatar

    h2oai/wave

    4,241View on GitHub↗

    Wave is a full-stack web application framework and low-code UI library designed for building real-time data dashboards and interactive interfaces using Python and R. It allows developers to define browser-based user interfaces and manage server-side state without writing HTML or CSS. The project functions as a collaborative state synchronizer, relaying and persisting application state across multiple concurrent users to enable shared real-time experiences. It distinguishes itself by broadcasting live updates and data visualizations to connected browsers through a unified programming model. T

    Pythonappdashboardfedramp
    View on GitHub↗4,241
  • peers/peerjs-serverpeers avatar

    peers/peerjs-server

    4,684View on GitHub↗

    PeerJS Server is a WebRTC signaling server and connection broker that coordinates handshakes between clients to establish direct peer-to-peer connections. It functions as a coordination point for discovering peer identifiers and initiating real-time media and data streams between remote browser clients. The project can be deployed as a dedicated signaling server or integrated as Node.js middleware within an existing web application to share a single network port. It manages the lifecycle of peer connections through a centralized signaling process, assigning unique identifiers to clients and m

    TypeScriptnodejspeerjsserver
    View on GitHub↗4,684
  • simplewebrtc/simplewebrtcsimplewebrtc avatar

    simplewebrtc/SimpleWebRTC

    4,689View on GitHub↗

    SimpleWebRTC is a communication framework and real-time media streaming library designed to establish peer-to-peer audio, video, and data streams between web clients. It provides a conference room manager to organize multiple participants into virtual rooms for group interaction. The framework includes a dedicated system for peer-to-peer file transfers and low-latency data messaging. It also features a network traversal configuration tool for managing the servers required to maintain connectivity across firewalls and restrictive network environments. The project covers broad capability areas

    JavaScript
    View on GitHub↗4,689
See all 30 alternatives to Togetherjs→

Frequently asked questions

What does jsfiddle/togetherjs do?

Togetherjs is a real-time collaboration framework designed to synchronize application state, cursors, and navigation across multiple user sessions. It provides a synchronization tool for shared browsing and a signaling server to facilitate peer-to-peer communication.

What are the main features of jsfiddle/togetherjs?

The main features of jsfiddle/togetherjs are: Real-Time Collaboration Tools, Application State Synchronizations, WebSocket Clients and Servers, Signaling Servers, State Broadcasting Systems, Collaborative Identity Mapping, JSON State Synchronization, Collaborative Interaction Sync.

What are some open-source alternatives to jsfiddle/togetherjs?

Open-source alternatives to jsfiddle/togetherjs include: partykit/partykit — PartyKit is a serverless WebSocket backend platform for building real-time multiplayer applications. It provides a… h2oai/wave — Wave is a full-stack web application framework and low-code UI library designed for building real-time data dashboards… peers/peerjs-server — PeerJS Server is a WebRTC signaling server and connection broker that coordinates handshakes between clients to… simplewebrtc/simplewebrtc — SimpleWebRTC is a communication framework and real-time media streaming library designed to establish peer-to-peer… webrtc/apprtc — apprtc is a WebRTC video chat application and signaling server designed to establish peer-to-peer audio and video… miroslavpejic85/mirotalk — Mirotalk is a self-hosted video conferencing platform and peer-to-peer communication server. It utilizes WebRTC for…