unsubbed.co

MiroTalk P2P

MiroTalk P2P is a JavaScript-based application that provides simple, secure, fast real-time video conferences up to 4k and 60fps, compatible.

Open-source WebRTC video conferencing, honestly reviewed. No marketing fluff, just what you get when you self-host it.

TL;DR

  • What it is: Open-source (AGPL-3.0) peer-to-peer video conferencing built on WebRTC. No media server required — video travels directly between participants’ browsers [1].
  • Who it’s for: Small teams, solo founders, and developers who want a Zoom/Google Meet replacement they control, with no per-seat pricing and no video ever touching a third-party server [1][homepage].
  • Cost savings: Zoom Pro runs $15.99/user/month. Google Workspace starts at $6/user/month and locks video behind higher tiers. MiroTalk P2P runs on a $5–10/mo VPS that handles signaling only — the video itself never passes through your server [1].
  • Key strength: Zero-friction join experience (no app, no login, no plugin), genuine P2P privacy, and up to 8K/60fps quality for calls with a handful of participants [README][1].
  • Key weakness: The P2P architecture that makes it cheap to host also caps practical participant count at roughly 6–8 before bandwidth on the participants’ end becomes the bottleneck. Not suitable for webinars, team-wide standups, or anything that looks like a “meeting” rather than a call [README]. AGPL-3.0 license also creates compliance friction for SaaS products that want to embed it.

What is MiroTalk P2P

MiroTalk P2P is a browser-based video conferencing application built on WebRTC. You navigate to a URL, pick a room name, and share the link. The other person clicks it and you’re on a call. No account, no download, no plugin [README][homepage].

What makes it structurally different from Zoom or Google Meet isn’t the feature list — it’s the architecture. “P2P” in the name is literal. When two people join a room, their browsers negotiate a direct connection using WebRTC. Video, audio, and chat travel peer-to-peer, not through MiroTalk’s servers [1][README]. Your server only handles the signaling layer: “here’s how to find each other.” Once connected, the server is out of the picture.

That architecture has real consequences. On the positive side: your VPS never touches the video bitstream, so you can host the signaling server on modest hardware (2 vCPU, 2GB RAM) and it’ll handle hundreds of concurrent rooms. On the negative side: every participant uploads their video stream to every other participant simultaneously. Four people in a call means each person is uploading three video streams. The math gets punishing fast [README][1].

The project is built and maintained by Miroslav Pejic, a Croatian full-stack developer [homepage]. It has 4,313 GitHub stars and is part of a broader MiroTalk product family that includes a separate SFU variant (for larger groups), a C2C (camera-to-camera) variant, and a BRO (broadcast) variant [3][README]. This review covers only the P2P edition.


Why people choose it over Zoom, Jitsi, and Google Meet

The CodeCanyon listing [1] — MiroTalk’s own marketplace page for the commercial license — is the most coherent pitch for who this is for: founders and developers who are tired of sending company data through Zoom’s servers or paying per-seat pricing that scales with headcount.

Versus Zoom and Google Meet. The core argument is data sovereignty. Every video call on Zoom or Google Meet routes through their infrastructure. MiroTalk P2P with self-hosted signaling means the video never leaves the participants’ devices. The CodeCanyon page is explicit: “No data leaves your server” — though more precisely, no data ever reaches your server either, since P2P means it goes directly between browsers [1]. For founders handling sensitive client calls, medical consultations, or legal discussions, that distinction matters.

Versus Jitsi Meet. Jitsi is the most direct open-source comparison. Jitsi is Apache 2.0 licensed (more permissive than MiroTalk’s AGPL-3.0), has a larger community, and runs on an SFU architecture — meaning a Jitsi server routes video through itself rather than relying on direct browser connections. That SFU approach scales better to 20–50 participants but requires significantly more server resources and bandwidth. MiroTalk P2P wins on server cost for small-group calls; Jitsi wins on reliability for larger groups [README][4].

Versus BigBlueButton. BigBlueButton is the education-sector choice: full recording, breakout rooms, polls, LMS integrations. It requires a dedicated server with 8GB RAM minimum and takes hours to install correctly. MiroTalk P2P is in a different weight class — lighter, faster to deploy, but missing the educational tooling [4].

On the privacy angle. The homepage states: “Total Privacy. Data stays between you and your participants. MiroTalk doesn’t collect or share personal information. It’s built for privacy first.” [homepage]. For a self-hosted instance, this is genuinely accurate — there’s no telemetry baked in that you can’t remove. The AGPL license requires you to publish modifications, but doesn’t impose data collection.


Features

Based on the README and CodeCanyon listing:

Video and audio:

  • Up to 8K resolution and 60fps (hardware and network dependent) [README][1]
  • Front and rear camera support on mobile [README]
  • Noise suppression, speaking detection, and volume indicators [README]
  • Push-to-talk walkie-talkie mode [README]
  • Full-screen mode with one-click zoom and pin/unpin [README]
  • Picture-in-Picture (PiP) for video and documents [README]

Screen and file sharing:

  • Screen sharing for presentations [README][homepage]
  • File sharing with drag-and-drop; secured via DTLS encryption [README][homepage]
  • Real-time YouTube video and audio file sharing [README]

Collaboration:

  • Chat with emoji picker, private messaging, markdown, and conversation export [README][homepage]
  • Collaborative whiteboard [README][homepage]
  • Speech recognition for voice-to-text messages [README]
  • Snapshot video frames as PNG [README]
  • Meeting recording (screen, audio, and webcam) [README][homepage]

AI integration:

  • ChatGPT integration for in-meeting Q&A and information retrieval [README][homepage]
  • Live transcriptions [1]

Auth and access control:

  • OIDC (OpenID Connect) authentication support [README]
  • Room password protection [README]
  • Host protection to prevent unauthorized access [README]
  • JWT-based credential management [README]
  • SSO listed as a canonical feature [merged profile]

Developer and embedding:

  • REST API with Swagger documentation [README][1]
  • Iframe embed (single HTML snippet, configurable permissions) [1]
  • Widget embed (floating call button via script tag) [1]
  • Room Builder UI for generating custom room links [1]
  • Webhooks [merged profile]
  • Slack and Mattermost integrations [README]
  • Sentry error reporting [README]
  • Docker and Docker Compose support [README][1]
  • NPM-based setup as an alternative to Docker [merged profile]

Localization:

  • Translated into 133 languages [README]

The feature list is genuinely long for a single-developer open-source project. What you don’t get: breakout rooms, pre-meeting waiting room controls, meeting scheduling, calendar integrations, or the kind of meeting management tooling that Zoom or Google Meet have built over a decade.


Pricing: SaaS vs self-hosted math

MiroTalk P2P is free to self-host under AGPL-3.0. There is no cloud-hosted tier with a monthly fee in the traditional sense.

The commercial angle comes in two forms:

  1. The hosted demo at https://p2p.mirotalk.com is free to use, maintained by the author, but is not suitable as a production dependency — it’s a demo instance.
  2. The CodeCanyon commercial license [1] offers a one-time payment for the source code with private-use or commercial-use licensing. This covers situations where the AGPL’s copyleft requirements (publish your modifications if you deploy publicly) are a compliance problem. The listing advertises “one-time payment, lifetime ownership” and “free lifetime updates” [1], but the specific price is not published in the available scrape data.

Self-hosted (AGPL-3.0):

  • Software: $0
  • VPS for signaling: $5–10/month (2 vCPU, 2GB RAM minimum) [1]
  • STUN/TURN server: typically free tier on providers like Twilio STUN, or self-hosted with coturn (~$5/month on a small VPS for small-scale use) [1][README]
  • Domain + SSL: $0 with Let’s Encrypt auto-provisioning [1]

Zoom for comparison:

  • Basic: free (40-minute limit on group calls)
  • Pro: $15.99/user/month
  • Business: $19.99/user/month
  • At 5 users on Pro: $95.94/month, or ~$1,151/year

Google Workspace for comparison:

  • Business Starter: $6/user/month (video included)
  • At 5 users: $30/month

Concrete math for a typical small team:

Five-person founding team doing daily 30-minute standups and weekly 2-hour client calls. Zoom Pro: $95.94/month. MiroTalk P2P self-hosted: ~$10/month total (VPS + TURN server). Savings: ~$86/month, or roughly $1,030/year.

The caveat: that math only holds if P2P architecture is sufficient for your use case (≤6-8 participants, no massive file sharing) and you can tolerate the setup and maintenance overhead.


Deployment reality check

The CodeCanyon page claims “online in under 5 minutes” with the automation scripts [1]. That is marketing. Here’s what it actually involves:

What you need:

  • A Linux VPS, minimum 2 vCPU and 2GB RAM (RAM is almost entirely for the Node.js signaling server, not video) [1]
  • Ubuntu 22.04 LTS [1]
  • Node.js v22+ or Docker [1]
  • A domain name pointed at the VPS
  • SSL certificate (auto-provisioned via Let’s Encrypt through the setup scripts) [1]
  • Nginx reverse proxy (configured by the setup scripts) [1]
  • A STUN/TURN server — this is the non-obvious dependency [1]

The STUN/TURN problem. WebRTC P2P connections require STUN for NAT traversal. About 80–90% of connections succeed with public STUN servers (Google’s, Cloudflare’s). The remaining cases — participants behind symmetric NATs (corporate firewalls, mobile data networks) — require a TURN server to relay the connection. MiroTalk doesn’t bundle TURN. You either use a free-tier TURN from Twilio/Cloudflare (rate-limited) or self-host coturn on a second VPS. This step is absent from most deployment guides but will cause calls to silently fail for a subset of your users if skipped [1][README].

The admin dashboard. MiroTalk has a separate admin panel project (MiroTalk Admin) that provides a web UI for managing updates, configuration, and multiple MiroTalk instances [2][3]. It’s a separate repo and setup, not bundled. Useful if you’re managing multiple MiroTalk variants (P2P, SFU, C2C) from one place [3].

Realistic time estimates:

  • Technical user who has deployed Docker on a VPS before: 1–2 hours to a working HTTPS instance with TURN configured.
  • Non-technical founder following a guide: half a day, mostly spent on DNS propagation, SSL debugging, and understanding TURN.
  • Non-technical founder with no Linux experience: strongly recommend paying someone to deploy it once rather than attempting it solo.

Pros and cons

Pros

  • Genuinely zero-cost SaaS alternative for small calls. Self-hosted signaling on a $5 VPS is all you need; video never touches your server [1][README].
  • No-friction join. No account, no download, no browser plugin. Participants click a link and are in the call [README][homepage]. This is a real advantage over tools that require app installs.
  • True P2P privacy. Encrypted WebRTC connections, no call routing through third-party infrastructure [1][homepage]. Medical, legal, and confidential calls benefit from this meaningfully.
  • 8K/60fps ceiling. Practically, you’ll be limited by participants’ upload bandwidth long before hitting this ceiling, but the headroom exists [README].
  • Whiteboard, recording, file sharing, chat included out of the box. Most open-source video tools require plugins or separate tools for these [README][homepage].
  • DTLS file transfer security. Files shared in-call are encrypted in transit via Datagram Transport Layer Security [README][homepage].
  • Embedding via iframe or widget. Drop a video call into any web app with a few lines of HTML [1]. This is genuinely useful for SaaS products that want in-app calling without building WebRTC.
  • REST API with Swagger docs. Programmatic room creation and management [1][README].
  • 133 languages. Unusually complete localization for a small open-source project [README].
  • One developer, consistent vision. Being a single-maintainer project is a risk, but it also means the codebase has conceptual coherence and isn’t committee-designed [homepage].

Cons

  • P2P architecture caps participant count. The reference says “up to 8k and 60fps” — what it doesn’t say is that quality degrades sharply past ~4–6 participants because each browser is uploading to every other participant simultaneously [README][1]. For team standups beyond 6 people, look at MiroTalk SFU (separate product) or Jitsi.
  • AGPL-3.0 license has teeth. If you modify MiroTalk P2P and offer it as a service, you must publish your source code. This disqualifies it for SaaS products that want a proprietary fork. The CodeCanyon commercial license [1] is the workaround, but that’s a separate (paid) purchase.
  • STUN/TURN dependency not bundled. A subset of your users will fail to connect without a TURN server. Setting one up is non-trivial and isn’t covered in basic deployment guides [1][README].
  • Single maintainer. 4,313 stars, but the entire project runs on one developer. No company, no VC-backed team, no support contract. Lifetime updates are promised in the CodeCanyon listing [1], but that commitment is as durable as the maintainer’s interest in the project.
  • Admin panel is a separate repo. If you want the management dashboard, that’s a second deployment on top of the main app [2][3].
  • No built-in meeting scheduling or calendar integration. You manage room URLs manually. Works fine for ad-hoc calls; creates friction for customer-facing scheduling workflows.
  • No waiting room or host-gating controls beyond password protection. Password on the room is the access control mechanism [README].

Who should use this / who shouldn’t

Use MiroTalk P2P if:

  • You’re replacing Zoom or Google Meet for internal calls among 2–6 people and paying per-seat pricing you want to eliminate.
  • You handle sensitive calls (legal, medical, executive) and genuinely cannot accept video routing through a cloud provider’s infrastructure.
  • You’re a developer who wants to embed video calling into a web product without building WebRTC from scratch — the iframe and widget embedding is real and functional [1].
  • You need a self-hosted video solution for a niche context (support tool, client portal, intake form with video) and want to own the data.

Skip it (use MiroTalk SFU instead) if:

  • Your calls regularly include more than 6–8 people. The SFU variant routes video through a server, scaling to much larger groups at the cost of higher server requirements.

Skip it (use Jitsi Meet instead) if:

  • You need Apache 2.0 licensing (commercially permissive, no copyleft).
  • You need proven deployment at larger scale with community-supported integrations.
  • Your org already has a Jitsi instance or Jitsi admin expertise.

Skip it (use BigBlueButton instead) if:

  • The primary use case is education: virtual classrooms, attendance tracking, breakout rooms, LMS integration (Moodle, Canvas).

Skip it (stay on Zoom) if:

  • Participants are non-technical end customers who are already on Zoom and won’t tolerate a different tool.
  • You need meeting recordings stored in the cloud with guaranteed uptime SLA.
  • You have no technical person available to deploy and maintain self-hosted infrastructure.

Alternatives worth considering

  • Jitsi Meet — Apache 2.0, SFU architecture, larger community, more mature admin tooling. The most direct open-source alternative. Harder to configure for production but more scalable [4].
  • MiroTalk SFU — Same author, different architecture. Routes video through a server (Selective Forwarding Unit) rather than peer-to-peer. Use this if you need groups larger than 6–8 [README][3].
  • BigBlueButton — Education-focused, includes recordings, breakout rooms, polling, LMS integrations. Requires a beefy dedicated server and is a serious installation project [4].
  • LiveKit — SFU-based, developer-focused, with SDKs for building custom real-time apps. More of a video infrastructure layer than an end-user conferencing tool [5].
  • Zoom — The incumbent. Best user experience and reliability, largest ecosystem, per-seat pricing that compounds with headcount.
  • Google Meet — Included in Workspace tiers. Excellent for orgs already on Google Workspace; limited for those who aren’t.
  • Element/Matrix — If you want self-hosted video plus persistent team messaging in one stack (at considerably higher setup complexity).

For a non-technical founder escaping Zoom bills with a small team, the realistic shortlist is MiroTalk P2P vs Jitsi. Pick MiroTalk P2P if a quick-join link, lighter server footprint, and true P2P privacy matter. Pick Jitsi if you need Apache 2.0 licensing, larger group support, or an established admin community.


Bottom line

MiroTalk P2P does the job it describes: drop a link, open a browser, start a call, no accounts required. For small teams doing sensitive calls that they genuinely don’t want routed through Zoom’s or Google’s infrastructure, the self-hosted setup cost (a few hours, one small VPS, one TURN server) is a reasonable one-time trade for permanent escape from per-seat billing.

The AGPL-3.0 license and single-maintainer structure are real risks — not dealbreakers, but things to acknowledge before building operational processes around it. And the P2P architecture is load-bearing context: it’s why the hosting is cheap, and it’s also why anything that looks like a company-wide all-hands needs a different tool.

If deploying this yourself is the blocker, that’s the kind of one-time infrastructure setup that upready.dev handles for clients. Pay once, own the infrastructure, stop the recurring bill.


Sources

  1. miroslavpejic85 — MiroTalk P2P: Secure Real-Time Video Chat with ChatGPT & File Sharing (CodeCanyon commercial listing). https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
  2. MiroTalk Docs — Quick Start (MiroTalk Admin). https://docs.mirotalk.com/mirotalk-admin/quick-start/
  3. MiroTalk Docs — MiroTalk Admin Dashboard. https://docs.mirotalk.com/mirotalk-admin/
  4. AlterOpen — Lasted 25 Alternative in Remote Collaboration 2026. https://alteropen.com/tasks/remote-collaboration
  5. AlterOpen — LiveKit Top 5+ AlternativeTo (Free/OpenSource…) in 2024. https://alteropen.com/alternative/livekit-livekit

Primary sources:

Features

Authentication & Access

  • Single Sign-On (SSO)

Integrations & APIs

  • Plugin / Extension System
  • REST API
  • Webhooks

Mobile & Desktop

  • Mobile App