Overview
Discover what makes MiroTalk C2C powerful
MiroTalk C2C is a lightweight, end‑to‑end encrypted WebRTC video conferencing platform designed for seamless embedding into any web application. Built with a modern JavaScript stack, it exposes a minimal yet powerful set of APIs that allow developers to launch real‑time cam‑to‑cam calls, screen sharing, and room management without the overhead of a full‑blown server. The core is a Node.js back‑end that orchestrates WebRTC signalling, while the front‑end is a React/TypeScript SPA that renders the call UI and handles media streams.
Backend
Frontend
Media
Database
Overview
MiroTalk C2C is a lightweight, end‑to‑end encrypted WebRTC video conferencing platform designed for seamless embedding into any web application. Built with a modern JavaScript stack, it exposes a minimal yet powerful set of APIs that allow developers to launch real‑time cam‑to‑cam calls, screen sharing, and room management without the overhead of a full‑blown server. The core is a Node.js back‑end that orchestrates WebRTC signalling, while the front‑end is a React/TypeScript SPA that renders the call UI and handles media streams.
Architecture
- Backend: Node.js (v18+), Express‑like routing, WebSocket server for signalling. The back‑end is stateless and can be horizontally scaled behind a load balancer; session data (room metadata, participant lists) is stored in Redis or an in‑memory store for simplicity.
- Frontend: React with Hooks, TypeScript, and a modular component library that can be dropped into any site via an iframe. The UI is built with CSS‑modules and supports theme overrides through props or CSS variables.
- Media: WebRTC is used for peer‑to‑peer media transport, with optional STUN/TURN support via Coturn. End‑to‑end encryption is achieved by letting browsers handle media encryption; the server only relays signalling data.
- Database: No persistent database is required for basic operation; however, a MongoDB or PostgreSQL instance can be hooked in to persist room logs, user profiles, and analytics if desired.
Core Capabilities
- Room API: Create/join rooms via a simple REST endpoint (
/api/rooms) that returns a unique room ID. - Signalling: Real‑time WebSocket channel (
/ws) that transmits SDP offers, ICE candidates, and participant events. - Screen Sharing: Exposed as a toggle in the UI; developers can bind custom events to start/stop sharing.
- Custom Events: WebSocket messages support arbitrary JSON payloads, enabling chat, reactions, or custom data layers.
- Extensibility Hooks:
onRoomCreated,onParticipantJoined, and similar callbacks can be registered in the front‑end to integrate with external analytics or notification systems.
Deployment & Infrastructure
- Self‑Hosting: The entire stack can run on a single VPS or Kubernetes pod. Docker images are available on Docker Hub (
mirotalk/c2c) and can be orchestrated withdocker‑composeor Helm charts. - Scalability: Because signalling is stateless, multiple back‑end instances can share a Redis pub/sub channel for WebSocket messages. Media remains peer‑to‑peer, so bandwidth scales with participants rather than the server.
- HTTPS & Security: The back‑end supports self‑signed or Let's Encrypt certificates via the
backend/sslmodule. STUN/TURN can be deployed with Coturn for NAT traversal in restrictive networks. - Monitoring: Standard Node.js metrics (CPU, memory) are exposed; integration with Prometheus or Grafana is straightforward via the
express-prom-bundlemiddleware.
Integration & Extensibility
- Plugin System: Developers can inject custom React components into the call UI using a simple plugin API (
registerPlugin). - Webhooks: The server can emit HTTP POST hooks on room start/end events, allowing integration with CI/CD pipelines or chatops.
- SDK: A lightweight JavaScript SDK (
mirotalk-sdk) exposes functions likeinitRoom,joinRoom, andleaveRoom, simplifying embedding into third‑party applications. - Customization: All UI elements are controlled via CSS variables; themes can be swapped at runtime without rebuilding the bundle.
Developer Experience
The project follows a clean, modular codebase with comprehensive JSDoc comments and an open‑source AGPLv3 license. The documentation covers everything from local development to production deployment, including detailed guides for Ngrok tunneling and custom STUN/TURN setups. An active Discord community provides quick support, feature requests, and plugin showcases. The code is open to contributions, with a clear contribution guide and issue template.
Use Cases
- Corporate Intranet: Embed a secure video call widget into an internal portal without exposing the company network to external services.
- Education Platforms: Add live lecture rooms with screen sharing and real‑time interaction to LMS systems.
- IoT Dashboards: Allow remote operators to initiate video calls from a monitoring dashboard, leveraging the lightweight front‑end.
- Open‑Source Projects: Use MiroTalk C2C as a drop‑in solution for community events, hackathons, or collaborative coding sessions.
Advantages
- Performance: Peer‑to‑peer media keeps server load minimal; the back‑end only handles signalling, reducing latency.
- Flexibility: The modular architecture lets developers replace any component (e.g., swap React for Vue) or extend functionality with custom plugins.
- Licensing: The AGPLv3 license ensures that improvements remain open, while commercial licenses are available for private use.
- Ease of Deployment: Docker images and a minimal configuration file (
.env) make it trivial to spin up a production instance on any cloud provider or on‑prem server.
MiroTalk C2C offers developers a ready‑to‑
Open SourceReady to get started?
Join the community and start self-hosting MiroTalk C2C today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
Ollama
Run and chat with large language models locally
MongooseIM
Enterprise‑grade XMPP instant messaging platform
Kapowarr
Automated comic library management for the arr ecosystem
Chartbrew
Build interactive dashboards from any data source
RSS-Bridge
Generate RSS feeds for sites without one
Movim
Federated XMPP blogging and chat hub
