MCPSERV.CLUB
Chitchatter

Chitchatter

Self-Hosted

Peer‑to‑peer encrypted chat with no server needed

Active(99)
2.1kstars
1views
Updated 2 days ago

Overview

Discover what makes Chitchatter powerful

Chitchatter is a lightweight, end‑to‑end encrypted peer‑to‑peer communication platform that can be self‑hosted or run entirely client‑side. Its core design eliminates the need for a dedicated API server: all routing, signalling, and data persistence occur in the browser using WebRTC, Trystero, and WebTorrent. When NAT traversal fails, a TURN relay is automatically used, ensuring reliable connectivity across restrictive networks. The application is written in TypeScript and bundled with Vite, providing a fast dev experience while keeping the runtime footprint minimal.

Peer‑to‑peer messaging, audio/video, and screen sharing

Unlimited file transfer

Ephemeral storage

Decentralized architecture

Overview

Chitchatter is a lightweight, end‑to‑end encrypted peer‑to‑peer communication platform that can be self‑hosted or run entirely client‑side. Its core design eliminates the need for a dedicated API server: all routing, signalling, and data persistence occur in the browser using WebRTC, Trystero, and WebTorrent. When NAT traversal fails, a TURN relay is automatically used, ensuring reliable connectivity across restrictive networks. The application is written in TypeScript and bundled with Vite, providing a fast dev experience while keeping the runtime footprint minimal.

Key Features

  • Peer‑to‑peer messaging, audio/video, and screen sharing powered by WebRTC.
  • Unlimited file transfer with client‑side encryption; the room name acts as the shared key.
  • Ephemeral storage – no message or file data is persisted on disk, only in RAM.
  • Decentralized architecture – no central API server required; optional server can be added for advanced routing.
  • Embeddable – expose a simple iframe interface so other web apps can host a chat room.
  • Markdown rendering with syntax highlighting (react‑markdown) and multiline support.

Technical Stack

LayerTechnology
FrontendTypeScript, React (via Vite)
NetworkingWebRTC (Trystero), WebTorrent, TURN relay fallback
File Transfersecure-file-transfer library
Build ToolVite (esbuild)
LicenseGPL‑v2, fully open source

The application relies on public static asset hosting (GitHub pages) for the UI bundle, but can be served from any HTTPS server. The optional API server is a minimal Node.js process that only handles TURN allocation and WebSocket signalling; it can be containerized or deployed on a lightweight VM.

Core Capabilities & APIs

  • Room API – create or join rooms via a UUID; the room ID is also used as the encryption key.
  • Peer Discovery – Trystero handles discovery and establishes a mesh of direct connections.
  • Messaging API – simple sendMessage / onMessage callbacks; messages are JSON‑encoded and signed.
  • File APIsendFile(file) streams encrypted chunks; the receiver reconstructs and decrypts on‑the‑fly.
  • Embedding API – expose a sandboxed iframe with postMessage hooks for host‑app integration.
  • Webhook support – optional API server can emit events (e.g., room creation, peer join) to external services.

Deployment & Infrastructure

  • Self‑hosting – host the static bundle on any HTTPS server (NGINX, Caddy, etc.). No backend required for core functionality.
  • Scalability – the system scales horizontally by adding more static hosts; peer‑to‑peer traffic bypasses the server, so bandwidth costs remain low.
  • Containerization – Dockerfile available for the optional API server; can be deployed on Kubernetes or ECS with minimal configuration.
  • Resource Footprint – the browser runtime is the only heavy component; the server side (if used) consumes <50 MB RAM and negligible CPU.

Integration & Extensibility

  • Plugin hooks – expose a global window.chitchatter object for custom extensions.
  • Webhooks & APIs – optional API server can expose REST endpoints to query room status or push notifications.
  • Custom TURN servers – configure via environment variables; supports multiple relay providers.
  • Theming & UI overrides – CSS custom properties allow deep theming; the component can be re‑rendered inside any React or vanilla app.

Developer Experience

  • Configuration – minimal env variables (TURN_URL, API_ENDPOINT); defaults point to public relays.
  • Documentation – comprehensive README with architecture diagram, API reference, and deployment guides.
  • Community – active GitHub repository, issue tracker, and discussion forum; GPL‑v2 encourages contributions.
  • Testing – unit tests cover networking logic and encryption; CI pipeline checks for vulnerabilities (Snyk badge).

Use Cases

  1. Secure Team Chat – embed a chat room in an internal portal without exposing credentials or servers.
  2. Event Communication – temporary, private rooms for webinars or conferences; no long‑term storage required.
  3. Peer‑to‑peer File Sharing – developers needing encrypted large file transfer without a central server.
  4. Decentralized Messaging for IoT – lightweight client can run on edge devices, communicating directly with peers.

Advantages

  • Zero‑trust architecture – no server‑side persistence; data never leaves the browser.
  • Performance – direct WebRTC connections reduce latency and avoid server bottlenecks.
  • Flexibility – optional API server lets you add features (e.g., authentication, analytics) without changing the core.
  • Licensing – GPL‑v2 ensures freedom to modify and redistribute; no commercial restrictions.
  • Low operational cost – static hosting and peer‑to‑peer traffic mean minimal infrastructure spend.

Chitchatter offers developers a principled, secure communication stack that can be dropped into existing web applications or run as a standalone service with zero backend complexity.

Open SourceReady to get started?

Join the community and start self-hosting Chitchatter today