{"data":[{"slug":"livekit","name":"LiveKit","tagline":"Apache-2.0 realtime rooms, SFU, and agents","category":"comms","url":"https://livekit.com","github":"https://github.com/livekit/livekit","pricing":"open-source","hook":"LiveKit is the Apache-2.0 realtime stack OpenAI used for ChatGPT Advanced Voice.","whatsGood":"Apache-2.0 server and CLI. Rooms, SFU, agents, egress. Self-host the media server — that is the free path. SDKs for web, iOS, Android, and agents.","theCatch":"Self-hosting an SFU is ops-heavy. Cloud Build pricing and free allowances are not confirmed here; check the vendor site. Do not assume Cloud is free.","verdict":"Apache-2.0 voice/video/agent runtime. Self-host is the free path; Cloud pricing is not confirmed here.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","voice","realtime","active"],"capabilities":["webrtc","rooms","realtime"],"surfaces":["Self-host"],"ecosystem":["Go","Multi-platform"],"licenseModel":"Apache-2.0","githubStars":21627,"starsPerWeek":68,"access":"free","archived":false,"repo":{"createdAt":"2020-09-30","pushedAt":"2026-10-19","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/livekit","html":"/gems/livekit","markdown":"/gems/livekit.md"}},{"slug":"socket-io","name":"Socket.IO","tagline":"MIT realtime library with fallbacks, not a hosted product","category":"comms","url":"https://socket.io","github":"https://github.com/socketio/socket.io","pricing":"open-source","hook":"Socket.IO is still the WebSocket library people actually ship when the connection has to survive a proxy.","whatsGood":"MIT. Engine.IO fallbacks (WebSocket, HTTP long-polling), rooms, acknowledgements, binary. Client and server that have been in production for a decade-plus. No product pricing page because there is no product — you run the server.","theCatch":"You bring the host. Horizontal scale needs Redis (or equivalent) adapter. This is not LiveKit and not a managed pub-sub. CORS, sticky sessions, and polling surprises remain your bugs.","verdict":"The MIT socket library. Free as in you run it.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["sdk","self-host","permissive","realtime","active"],"capabilities":["websockets","realtime"],"surfaces":["Self-host"],"ecosystem":["Node.js","Browser"],"licenseModel":"OSS/MIT","githubStars":63221,"starsPerWeek":73,"access":"free","archived":false,"repo":{"createdAt":"2010-03-11","pushedAt":"2026-09-29","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/socket-io","html":"/gems/socket-io","markdown":"/gems/socket-io.md"}},{"slug":"centrifugo","name":"Centrifugo","tagline":"Apache-2.0 Go realtime server binary, not in-process Socket.IO","category":"comms","url":"https://centrifugal.dev","github":"https://github.com/centrifugal/centrifugo","pricing":"open-source","hook":"Centrifugo is the Go realtime server you run next to your app, not a library inside it.","whatsGood":"Apache-2.0. Language-agnostic PUB/SUB: WebSocket, HTTP-streaming, SSE, gRPC, WebTransport. Official SDKs. docker run centrifugo. Decouples transport from business logic.","theCatch":"You run it. This is not Socket.IO in-process. Cloud/PRO pricing is not confirmed here — no invented Cloud prices. Ops, clustering, and Redis when you scale stay yours.","verdict":"Apache-2.0 realtime binary. Free as in you operate the server.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","active"],"capabilities":["realtime","pubsub"],"surfaces":["Self-host"],"ecosystem":["Go"],"licenseModel":"Apache-2.0","githubStars":10884,"starsPerWeek":18,"access":"free","archived":false,"repo":{"createdAt":"2015-03-31","pushedAt":"2026-10-18","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/centrifugo","html":"/gems/centrifugo","markdown":"/gems/centrifugo.md"}},{"slug":"yjs","name":"Yjs","tagline":"MIT CRDT library, not a hosted collab product","category":"comms","url":"https://github.com/yjs/yjs","github":"https://github.com/yjs/yjs","pricing":"open-source","hook":"Yjs is the CRDT you import. There is no Yjs Cloud, no SKU, no watermark.","whatsGood":"MIT. Shared types for building collaborative software. Pair with Liveblocks if you want rooms hosted, or bring your own provider. Pair with /skills/yjs-best-practices for the library cookbook.","theCatch":"Not a product. No hosted SKU, no pricing page, no support SLA. You bring the network layer (Liveblocks, y-websocket, your own). Distinct from Socket.IO: CRDT merge, not event fan-out.","verdict":"The MIT CRDT. Pair with Liveblocks for hosted rooms; this is the library, not the meter.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["sdk","self-host","permissive","license-unclear","active"],"capabilities":["crdt","realtime"],"surfaces":["Self-host"],"ecosystem":["Browser","Node.js"],"licenseModel":"OSS/MIT","githubStars":22950,"starsPerWeek":36,"access":"free","archived":false,"repo":{"createdAt":"2014-07-29","pushedAt":"2026-10-18","license":"NOASSERTION","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/yjs","html":"/gems/yjs","markdown":"/gems/yjs.md"}},{"slug":"mercure","name":"Mercure","tagline":"AGPL-3.0 SSE hub; homepage still says MIT","category":"comms","url":"https://mercure.rocks","github":"https://github.com/dunglas/mercure","pricing":"open-source","hook":"Mercure is the SSE hub whose marketing page has not caught up with its LICENSE file.","whatsGood":"LICENSE file is GNU AGPLv3. SSE hub: publish with POST, subscribe with EventSource. Caddy-based, Docker/Helm, Last-Event-ID replay. Official realtime path for Symfony. Self-host the Hub.","theCatch":"Homepage still says the Hub is MIT-licensed. The LICENSE file is AGPL-3.0 — print the file. SSE, not WebSockets, not Pusher protocol. Distinct from Socket.IO and Soketi. Cloud/Enterprise exist; check their pricing page. OSS self-host is the free path.","verdict":"AGPL SSE hub. Believe the LICENSE file, not the MIT line on the homepage.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","copyleft","active"],"capabilities":["sse","realtime"],"surfaces":["Self-host"],"ecosystem":["Go"],"licenseModel":"AGPL-3.0","githubStars":5350,"starsPerWeek":12,"access":"free","archived":false,"repo":{"createdAt":"2018-07-14","pushedAt":"2026-10-19","license":"AGPL-3.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/mercure","html":"/gems/mercure","markdown":"/gems/mercure.md"}},{"slug":"nats","name":"NATS","tagline":"Apache-2.0 subject-based messaging and streaming fabric","category":"comms","url":"https://nats.io","github":"https://github.com/nats-io/nats-server","pricing":"open-source","hook":"NATS is the subject-based messaging fabric you run when sockets alone are the wrong layer.","whatsGood":"Apache-2.0. OSS self-host at $0. Pub/sub, request/reply, queue groups, JetStream streaming. Tiny Go server, clients across languages. CNCF project.","theCatch":"Subject-based messaging/streaming fabric — not an in-process WS lib and not a Go realtime binary alone. Distinct from Socket.IO and Centrifugo.","verdict":"Apache-2.0 messaging fabric. Free as in you run the server. Not Socket.IO.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","active"],"capabilities":["messaging","streaming"],"surfaces":["Self-host"],"ecosystem":["Go","Multi-platform"],"licenseModel":"Apache-2.0","githubStars":20895,"starsPerWeek":29,"access":"free","archived":false,"repo":{"createdAt":"2012-10-29","pushedAt":"2026-10-16","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/nats","html":"/gems/nats","markdown":"/gems/nats.md"}},{"slug":"anycable","name":"AnyCable","tagline":"MIT realtime for Action Cable with delivery guarantees","category":"comms","url":"https://anycable.io","github":"https://github.com/anycable/anycable","pricing":"freemium","hook":"AnyCable is Action Cable that survives scale without pretending to be Pusher.","whatsGood":"MIT. Open-source tier is Free. Delivery guarantees, presence, Action Cable protocol, multi-backend. Drop-in path for Rails apps that outgrew the default cable server.","theCatch":"Delivery guarantees + presence + Action Cable / multi-backend — not a Pusher-protocol server. Distinct from Socket.IO and Centrifugo. Pro and Managed exist; prices not reprinted here.","verdict":"MIT Action Cable path. OSS tier is free; not Soketi, not Socket.IO.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["free-tier","permissive","realtime","active"],"capabilities":["realtime","websockets"],"surfaces":["Hosted"],"ecosystem":["Multi-platform"],"licenseModel":"Freemium","githubStars":2388,"starsPerWeek":5,"access":"free","archived":false,"repo":{"createdAt":"2016-09-03","pushedAt":"2026-10-15","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/anycable","html":"/gems/anycable","markdown":"/gems/anycable.md"}},{"slug":"mediasoup","name":"mediasoup","tagline":"ISC embeddable SFU as a Node module or Rust crate","category":"comms","url":"https://mediasoup.org","github":"https://github.com/versatica/mediasoup","pricing":"open-source","hook":"mediasoup is the SFU you embed, not the rooms product you rent.","whatsGood":"ISC. Node package and Rust crate. You own signaling and the room model.","theCatch":"Embeddable media router as Node module/Rust crate — not LiveKit rooms/agents product. Distinct from LiveKit.","verdict":"ISC embeddable media router. Free as in you wire it. Not LiveKit.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","active"],"capabilities":["webrtc","media"],"surfaces":["Self-host"],"ecosystem":["Node.js","Rust"],"licenseModel":"ISC","githubStars":7398,"starsPerWeek":12,"access":"free","archived":false,"repo":{"createdAt":"2014-12-12","pushedAt":"2026-10-18","license":"ISC","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/mediasoup","html":"/gems/mediasoup","markdown":"/gems/mediasoup.md"}},{"slug":"peerjs","name":"PeerJS","tagline":"MIT browser P2P WebRTC with free cloud or self-host signaling","category":"comms","url":"https://peerjs.com","github":"https://github.com/peers/peerjs","pricing":"freemium","hook":"PeerJS is browser-to-browser WebRTC when you do not want to stand up a media-server room product.","whatsGood":"MIT. Data and media connections in the browser. Free cloud PeerServer or self-host your own signaling. Tiny API for 1:1 and small meshes.","theCatch":"Browser P2P WebRTC + optional free signaling — not LiveKit/mediasoup media-server rooms. Larger groups need a media server (SFU-class), not PeerJS alone. Distinct from LiveKit and mediasoup.","verdict":"MIT P2P WebRTC. Free signaling path; not a rooms SFU.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","free-tier","permissive","realtime","stale"],"capabilities":["webrtc","p2p","browser"],"surfaces":["Self-host","Hosted"],"ecosystem":["Browser","Node.js"],"licenseModel":"Freemium","githubStars":13490,"starsPerWeek":19,"access":"free","archived":false,"repo":{"createdAt":"2012-12-23","pushedAt":"2026-02-27","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/peerjs","html":"/gems/peerjs","markdown":"/gems/peerjs.md"}},{"slug":"pion-webrtc","name":"Pion WebRTC","tagline":"MIT embeddable Go WebRTC library — not a rooms product","category":"libraries","url":"https://pion.ly","github":"https://github.com/pion/webrtc","pricing":"open-source","hook":"Pion is pure-Go WebRTC you embed when LiveKit is a product and mediasoup is a Node media server.","whatsGood":"MIT. Pure Go WebRTC stack you import into your binary. Build custom peers, gateways, and media paths without adopting a rooms SaaS. First-class Go ecosystem.","theCatch":"Embeddable Go library — not LiveKit rooms product, not mediasoup C++/Node media server, not PeerJS browser-only P2P helper. You assemble signaling and any SFU-class topology yourself. Distinct from LiveKit, mediasoup, and PeerJS.","verdict":"MIT Go WebRTC library. Free to embed; not a rooms stack.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["sdk","self-host","permissive","realtime","active"],"capabilities":["webrtc","library"],"surfaces":["Self-host","Hosted"],"ecosystem":["Go"],"licenseModel":"OSS/MIT","githubStars":16850,"starsPerWeek":38,"access":"free","archived":false,"repo":{"createdAt":"2018-05-18","pushedAt":"2026-10-19","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/pion-webrtc","html":"/gems/pion-webrtc","markdown":"/gems/pion-webrtc.md"}},{"slug":"janus-gateway","name":"Janus Gateway","tagline":"GPL-3.0 plugin-core WebRTC gateway (SIP, VideoRoom, streaming)","category":"comms","url":"https://janus.conf.meetecho.com","github":"https://github.com/meetecho/janus-gateway","pricing":"open-source","hook":"Janus is the plugin-core C gateway when you need SIP, VideoRoom, streaming, and recording — not an opinionated rooms SaaS.","whatsGood":"GPL-3.0 core. Plugin architecture: SIP, VideoRoom, streaming, recording, and more. Battle-tested Meetecho gateway. Commercial options exist from Meetecho; OSS self-host is the free path.","theCatch":"Plugin-core C gateway — not LiveKit/mediasoup opinionated rooms products. You pick plugins and ops the gateway. Distinct from LiveKit, mediasoup, PeerJS, and Pion.","verdict":"GPL-3.0 WebRTC gateway. Self-host free; commercial options exist — pitch the OSS core.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","copyleft","realtime","active"],"capabilities":["webrtc","gateway"],"surfaces":["Self-host","Hosted"],"ecosystem":["Multi-platform"],"licenseModel":"GPL-3.0","githubStars":9192,"starsPerWeek":14,"access":"free","archived":false,"repo":{"createdAt":"2014-02-11","pushedAt":"2026-10-16","license":"GPL-3.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/janus-gateway","html":"/gems/janus-gateway","markdown":"/gems/janus-gateway.md"}},{"slug":"socketcluster","name":"SocketCluster","tagline":"MIT Node pub/sub+RPC+JWT with SCC scale-out","category":"comms","url":"https://socketcluster.io","github":"https://github.com/SocketCluster/socketcluster","pricing":"open-source","hook":"SocketCluster is Node realtime with pub/sub, RPC, and JWT when Socket.IO is only sockets.","whatsGood":"MIT. Pub/sub + RPC + JWT auth in one Node stack. SCC (SocketCluster Cluster) for horizontal scale-out. You run the servers — no product seat tax on the core.","theCatch":"Node pub/sub+RPC+JWT+SCC scale-out — not Socket.IO library-only, not Soketi Pusher-protocol, not Centrifugo Go hub, not NATS messaging, not AnyCable Rails WS. Distinct from Socket.IO, Soketi, Centrifugo, NATS, and AnyCable.","verdict":"MIT Node realtime cluster. Self-host free; not Socket.IO alone.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","active"],"capabilities":["pubsub","rpc","websockets"],"surfaces":["Self-host"],"ecosystem":["Node.js"],"licenseModel":"OSS/MIT","githubStars":6197,"starsPerWeek":9,"access":"free","archived":false,"repo":{"createdAt":"2013-09-23","pushedAt":"2026-10-09","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/socketcluster","html":"/gems/socketcluster","markdown":"/gems/socketcluster.md"}},{"slug":"laravel-reverb","name":"Laravel Reverb","tagline":"MIT first-party Laravel WebSocket server","category":"comms","url":"https://laravel.com/docs/reverb","github":"https://github.com/laravel/reverb","pricing":"open-source","hook":"Laravel Reverb is first-party WebSockets when Soketi is a Pusher clone and you already live in Laravel.","whatsGood":"MIT. First-party Laravel WebSocket server. Echo-compatible. No third-party Pusher protocol tax. You run it next to your app.","theCatch":"First-party Laravel WS — not Soketi Pusher-protocol, not Centrifugo Go hub, not AnyCable Rails, not Socket.IO library, not Mercure SSE. Distinct from Soketi, Centrifugo, AnyCable, Socket.IO, and Mercure.","verdict":"MIT Laravel WebSockets. Free with your Laravel stack.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","active"],"capabilities":["websockets","laravel"],"surfaces":["Self-host"],"ecosystem":["Multi-platform"],"licenseModel":"OSS/MIT","githubStars":1626,"starsPerWeek":8,"access":"free","archived":false,"repo":{"createdAt":"2022-11-02","pushedAt":"2026-10-14","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/laravel-reverb","html":"/gems/laravel-reverb","markdown":"/gems/laravel-reverb.md"}},{"slug":"tuwunel","name":"Tuwunel","tagline":"Apache-2.0 Matrix homeserver; official conduwuit successor","category":"comms","url":"https://github.com/matrix-construct/tuwunel","github":"https://github.com/matrix-construct/tuwunel","pricing":"open-source","hook":"Tuwunel is the maintained Matrix homeserver after conduwuit was archived.","whatsGood":"Apache-2.0. Official successor to archived conduwuit. Maintained Matrix homeserver you self-host. Federation-capable without Synapse Java weight.","theCatch":"Official conduwuit successor — Conduit is still beta, so pick one of the two. Matrix homeserver slot, not a generic WS product. Distinct from LiveKit/Soketi-style realtime.","verdict":"Apache-2.0 Matrix homeserver. Maintained successor; skip beta Conduit dual-keep.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","active"],"capabilities":["matrix","homeserver"],"surfaces":["Self-host"],"ecosystem":["Rust"],"licenseModel":"Apache-2.0","githubStars":2646,"starsPerWeek":31,"access":"free","archived":false,"repo":{"createdAt":"2025-02-21","pushedAt":"2026-10-19","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/tuwunel","html":"/gems/tuwunel","markdown":"/gems/tuwunel.md"}},{"slug":"matrix-js-sdk","name":"matrix-js-sdk","tagline":"Apache-2.0 Matrix client library — needs a homeserver","category":"libraries","url":"https://github.com/matrix-org/matrix-js-sdk","github":"https://github.com/matrix-org/matrix-js-sdk","pricing":"open-source","hook":"matrix-js-sdk is the browser/Node Matrix client when Tuwunel is the homeserver you still have to run.","whatsGood":"Apache-2.0. Official Matrix client SDK for JS. Rooms, sync, E2EE paths in the client. Pair with any homeserver you choose.","theCatch":"Client lib only — you need a homeserver (Tuwunel etc.). Not a homeserver and not a generic WS product. Distinct from Tuwunel.","verdict":"Apache-2.0 Matrix client. Free library; bring a homeserver.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["sdk","self-host","permissive","active"],"capabilities":["matrix","client","sdk"],"surfaces":["SDK","Self-host"],"ecosystem":["Node.js","Browser"],"licenseModel":"Apache-2.0","githubStars":2190,"starsPerWeek":4,"access":"free","archived":false,"repo":{"createdAt":"2015-03-04","pushedAt":"2026-10-17","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/matrix-js-sdk","html":"/gems/matrix-js-sdk","markdown":"/gems/matrix-js-sdk.md"}},{"slug":"mosquitto","name":"Eclipse Mosquitto","tagline":"EPL-2.0 / BSD-3 MQTT broker; OSS self-host forever free","category":"comms","url":"https://mosquitto.org","github":"https://github.com/eclipse-mosquitto/mosquitto","pricing":"open-source","hook":"Mosquitto is the MQTT broker you run when NATS subjects are the wrong protocol.","whatsGood":"EPL-2.0 OR BSD-3-Clause (EDL-1.0; LICENSE.txt SPDX). OSS self-host forever free. Lightweight MQTT broker. Cedalo Pro is optional commercial — not required for the free path.","theCatch":"MQTT broker, not a NATS messaging fabric. Distinct from Soketi/Laravel Reverb/Centrifugo (WebSocket/Pusher paths). Not a messaging-bus twin of NATS. Cedalo Pro exists as the paid path.","verdict":"Eclipse MQTT broker. Self-host free forever. Not NATS, not Soketi.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","license-unclear","active"],"capabilities":["mqtt","broker"],"surfaces":["Self-host"],"ecosystem":["Multi-platform"],"licenseModel":"OSS/MIT","githubStars":11277,"starsPerWeek":20,"access":"free","archived":false,"repo":{"createdAt":"2016-03-10","pushedAt":"2026-10-15","license":"NOASSERTION","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/mosquitto","html":"/gems/mosquitto","markdown":"/gems/mosquitto.md"}},{"slug":"sockudo","name":"Sockudo","tagline":"MIT Rust Pusher V1 edge + Protocol V2 recovery/history/push","category":"comms","url":"https://sockudo.io","github":"https://github.com/sockudo/sockudo","pricing":"open-source","hook":"Sockudo is the Rust realtime server that keeps Pusher clients and adds durable Protocol V2 when you outgrow fire-and-forget.","whatsGood":"MIT. Self-host Rust + Tokio. Protocol V1 keeps pusher-js / Laravel Echo. Protocol V2 adds recovery, history, mutable messages, push, AI Transport. Horizontal fanout adapters.","theCatch":"Vs Soketi: Rust Pusher V1 edge + Protocol V2 recovery/history/mutable/push — not AGPL v7-only. Distinct from Soketi AGPL Protocol v7 drop-in. Self-host is the free path.","verdict":"MIT Rust Pusher-compat with V2 durability. Not AGPL Soketi.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","copyleft","realtime","workflows","active"],"capabilities":["pusher","websockets","realtime"],"surfaces":["Self-host"],"ecosystem":["Rust","Multi-platform"],"licenseModel":"AGPL-3.0","githubStars":828,"starsPerWeek":8,"access":"free","archived":false,"repo":{"createdAt":"2024-11-09","pushedAt":"2026-10-17","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/sockudo","html":"/gems/sockudo","markdown":"/gems/sockudo.md"}},{"slug":"partykit","name":"PartyKit","tagline":"MIT realtime rooms on Cloudflare Durable Objects; pay CF Workers only","category":"comms","url":"https://www.partykit.io","github":"https://github.com/cloudflare/partykit","pricing":"open-source","hook":"PartyKit is stateful multiplayer rooms as code when Liveblocks is the hosted collab suite and raw WebSockets are the weekend you lose.","whatsGood":"MIT (Cloudflare-owned). PartyServer model on Workers + Durable Objects. TypeScript rooms, Yjs-friendly patterns, partykit deploy to your CF account. No PartyKit seat tax — Workers free tier covers small traffic.","theCatch":"Vs Liveblocks/Yjs+Hocuspocus: room primitive on CF, not prebuilt comments/inbox SaaS. You pay Cloudflare Workers/DO usage at scale. Auth, persistence, and CRDT choice are yours. Post-acquisition roadmap rides CF.","verdict":"MIT CF realtime rooms. Free software; hosting is Workers/DO billing.","addedAt":"2026-09-04","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","workflows","active"],"capabilities":["realtime","durable-objects","rooms"],"surfaces":["Self-host"],"ecosystem":["Node.js","Browser"],"licenseModel":"ISC","githubStars":1295,"starsPerWeek":10,"access":"free","archived":false,"repo":{"createdAt":"2024-05-27","pushedAt":"2026-08-03","license":"ISC","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/partykit","html":"/gems/partykit","markdown":"/gems/partykit.md"}},{"slug":"jitsi","name":"Jitsi Meet","tagline":"Apache-2.0 self-host Meet + free meet.jit.si; JaaS optional","category":"comms","url":"https://jitsi.org","github":"https://github.com/jitsi/jitsi-meet","pricing":"open-source","hook":"Jitsi Meet is the Apache-2.0 full video meetings product you self-host forever — or just use meet.jit.si for free.","whatsGood":"Apache-2.0. Rooms, chat, desktop share, mobile clients. Public meet.jit.si stays free with no account. Self-host the same stack; JaaS is optional paid ops from 8x8.","theCatch":"Full Meet product UI (rooms/chat/desktop share) — not a LiveKit/mediasoup SFU SDK you embed. Self-host is multi-component ops; public instance is shared.","verdict":"Apache-2.0 Meet product. Free forever self-host or meet.jit.si; JaaS if you want them to run it.","addedAt":"2026-09-07","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","active"],"capabilities":["webrtc","rooms","meet"],"surfaces":["Self-host"],"ecosystem":["Multi-platform"],"licenseModel":"Apache-2.0","githubStars":30103,"starsPerWeek":45,"access":"free","archived":false,"repo":{"createdAt":"2013-12-16","pushedAt":"2026-10-17","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/jitsi","html":"/gems/jitsi","markdown":"/gems/jitsi.md"}},{"slug":"gatho","name":"gatho","tagline":"MIT self-host WebSocket rooms toolkit; no Cloud product","category":"comms","url":"https://gatho.dev","github":"https://github.com/isaac-mason/gatho","pricing":"open-source","hook":"gatho is the unopinionated process-per-room WebSocket toolkit when Colyseus brings state sync and PartyKit locks you to Durable Objects.","whatsGood":"MIT. Self-host forever - no Cloud SKU. Room/server/SDK/client: seat tokens, subprocess or custom runners, memory or Redis HA drivers, client reconnect + reliable message buffering. You own matchmaking and message codecs. Homepage gatho.dev; source github.com/isaac-mason/gatho.","theCatch":"Vs Colyseus, PartyKit, and socket.io: rooms+seats toolkit — not state-sync, not CF Durable Object rooms, not a general WS framework. Author says early/not done but in production today. Prefer GitHub package install; registry tag is pre-release only. Docs still maturing.","verdict":"MIT self-host multiplayer rooms. Free forever; alpha install path - treat as early but real.","addedAt":"2026-09-08","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","workflows","active"],"capabilities":["websockets","rooms","self-host"],"surfaces":["Self-host"],"ecosystem":["Node.js","Multi-platform"],"licenseModel":"OSS/MIT","githubStars":81,"starsPerWeek":3,"access":"free","archived":false,"repo":{"createdAt":"2026-04-16","pushedAt":"2026-09-30","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/gatho","html":"/gems/gatho","markdown":"/gems/gatho.md"}},{"slug":"trystero","name":"Trystero","tagline":"MIT serverless WebRTC rooms via Nostr/MQTT/BitTorrent/IPFS","category":"comms","url":"https://trystero.dev","github":"https://github.com/dmotz/trystero","pricing":"open-source","hook":"Trystero is serverless WebRTC room discovery when you want multiplayer without deploying PeerServer, Colyseus, PartyKit, or Gatho.","whatsGood":"MIT. npm `trystero` by Dan Motzenbecker (dmotz). Same API across Nostr (default), MQTT, BitTorrent, IPFS, Supabase, Firebase, or an optional self-hosted WebSocket relay. Rooms, broadcast, automatic (de)serialization, chunking/throttling, media streams with metadata, end-to-end session encryption. Works in browsers; Node/Bun/Deno with a WebRTC polyfill. Homepage trystero.dev; source github.com/dmotz/trystero.","theCatch":"Vs PeerJS, Colyseus, PartyKit, and Gatho: discovery+P2P data library — not a rooms product, not a state-sync game server, not Durable Object rooms, not a process-per-room toolkit, not a PeerServer you host. NAT/TURN still bites some networks even after signaling succeeds. You still own matchmaking UX, presence policy, and anything that needs a true authoritative server.","verdict":"MIT serverless WebRTC matchmaking. Free forever; pick it when discovery without your own signaling stack is the point.","addedAt":"2026-09-09","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","realtime","active"],"capabilities":["webrtc","p2p","serverless"],"surfaces":["Self-host"],"ecosystem":["Browser","Node.js"],"licenseModel":"OSS/MIT","githubStars":2796,"starsPerWeek":9,"access":"free","archived":false,"repo":{"createdAt":"2020-10-26","pushedAt":"2026-10-18","license":"MIT","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/trystero","html":"/gems/trystero","markdown":"/gems/trystero.md"}},{"slug":"mqtt-js","name":"MQTT.js","tagline":"MIT Node + browser MQTT client — needs a broker","category":"libraries","url":"https://github.com/mqttjs/MQTT.js","github":"https://github.com/mqttjs/MQTT.js","pricing":"open-source","hook":"MQTT.js is the Node + browser MQTT *client* when Mosquitto is the broker you still have to run.","whatsGood":"MIT. mqttjs/MQTT.js (npm `mqtt`). Connect, publish, subscribe with QoS and MQTT 5 paths. Works in Node and browsers; CLI helpers ship with the package. Same “library needs a server” shape as matrix-js-sdk — pair with Mosquitto or any MQTT broker.","theCatch":"Client library only — not a broker (that is Mosquitto/HiveMQ/etc.). Browser is MQTT-over-WebSockets only (no raw MQTT TCP from the page). You still provide a reachable broker, credentials, and topic design. Distinct from Mosquitto.","verdict":"MIT MQTT client. Free library; bring a broker — browsers speak WebSockets.","addedAt":"2026-09-10","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","license-unclear","active"],"capabilities":["mqtt","client","browser"],"surfaces":["Self-host"],"ecosystem":["Node.js","Browser"],"licenseModel":"OSS/MIT","githubStars":9122,"starsPerWeek":11,"access":"free","archived":false,"repo":{"createdAt":"2011-04-05","pushedAt":"2026-10-16","license":"NOASSERTION","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/mqtt-js","html":"/gems/mqtt-js","markdown":"/gems/mqtt-js.md"}},{"slug":"coturn","name":"coturn","tagline":"BSD-3-Clause TURN/STUN NAT-traversal relay (not an SFU)","category":"devops","url":"https://coturn.github.io/","github":"https://github.com/coturn/coturn","pricing":"open-source","hook":"coturn is the TURN/STUN relay when LiveKit/Janus are rooms/SFUs and Pion/PeerJS are libraries — you still need NAT traversal infra.","whatsGood":"BSD-3-Clause-style (3-clause). coturn/coturn. Free open-source TURN and STUN server for VoIP/WebRTC media NAT traversal — REST auth, TLS/DTLS, Docker images on Docker Hub/GHCR/Quay. Homepage coturn.github.io; source github.com/coturn/coturn.","theCatch":"Vs LiveKit / Janus (rooms/SFU products), Pion / PeerJS (WebRTC libs/signaling): coturn is the *relay*, not a room product and not a client SDK. You still open UDP/TCP ranges, set realm/secrets, and pay bandwidth on the box that relays. Distinct from mediasoup/LiveKit media routing.","verdict":"BSD-3-Clause TURN/STUN. Free forever relay software; the bill is ports, RAM, and egress.","addedAt":"2026-09-11","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["self-host","permissive","license-unclear","active"],"capabilities":["webrtc","turn","stun"],"surfaces":["Self-host"],"ecosystem":["Multi-platform"],"licenseModel":"OSS/MIT","githubStars":14489,"starsPerWeek":25,"access":"free","archived":false,"repo":{"createdAt":"2015-07-17","pushedAt":"2026-10-17","license":"NOASSERTION","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/coturn","html":"/gems/coturn","markdown":"/gems/coturn.md"}},{"slug":"liveblocks","name":"Liveblocks","tagline":"Hosted collab rooms; Free $0 pauses at the cap","category":"comms","url":"https://liveblocks.io","github":"https://github.com/liveblocks/liveblocks","pricing":"freemium","hook":"Liveblocks is the hosted collab layer you rent when Socket.IO is the wrong job.","whatsGood":"Free is $0, no credit card. Caps: 3,000 collab minutes, 200 comments, 1 GB realtime storage, 512 MB files, 10 connections/room, 3 dashboard seats. Watermark required. Presence, comments, Yjs, storage. Pair with /skills/liveblocks-best-practices for the cookbook — this page is the product Catch, not the skill.","theCatch":"Free pauses at the cap until the next cycle — not PAYG. Pro is $30/mo (credits + drop branding). Self-host is an Enterprise add-on, not the OSS path. Distinct from Socket.IO (you run the server) and Centrifugo (Go binary you operate).","verdict":"Hosted collab with a real $0 Free. Caps pause the feature; Pro is $30; self-host is sales.","addedAt":"2026-09-03","featured":false,"domain":"Comms","subSpecialty":"Realtime","subcategory":"Realtime","tags":["free-tier","license-unclear","active"],"capabilities":["realtime","collab"],"surfaces":["Hosted"],"ecosystem":["Node.js","Browser"],"licenseModel":"Freemium","githubStars":4756,"starsPerWeek":17,"access":"free-tier","archived":false,"repo":{"createdAt":"2021-05-25","pushedAt":"2026-10-13","license":"NOASSERTION","archived":false,"checkedAt":"2026-10-19"},"links":{"self":"/api/gems/liveblocks","html":"/gems/liveblocks","markdown":"/gems/liveblocks.md"}}],"meta":{"total":24,"count":24,"offset":0,"limit":null,"sort":"curated","sorts":["curated","catalog","new","stars","trending","name"],"filters":{"subcategory":"realtime"},"next":null,"categories":["agents","nextjs","python","shopify","databases","devops","design","observability","rust","payments","comms","notifications","libraries"],"tags":["mcp","cli","tui","api","sdk","desktop-app","web-ui","editor-plugin","self-host","local-first","free-tier","paid-only","paid-led","permissive","copyleft","source-available","license-unclear","coding-agents","local-llm","rag","memory","evals","browser-automation","scraping","sandbox","skills","voice","security","auth","payments","realtime","postgres","vector","kubernetes","containers","observability","testing","workflows","graphics-3d","git","active","stale","archived","young-repo","fast-stars"]}}