Want encrypted WebRTC video calls with no downloads, no sign-ups, and no tracking?
This prototype uses PeerJS to establish a secure browser-to-browser connection. Everything is ephemeral and cleared when you refresh the page—true zero data privacy!
Check out the demo: https://p2p.positive-intentions.com/iframe.html?globals=&args=&id=demo-p2p-call--video-call&viewMode=story
NOTE: This is a close-source project and has NOT been audited or reviewed. For testing purposes only, not a replacement for your current messaging app.
Hmm isn’t open source jitsi selfhost would be better?
i agree. better and more secure.
my project so far is an early preview into the p2p framework in my project. with feedback i can improve the functionality as i integrate it into my messaging app.
Why closed source, out of curiosity?
its a work in progress and far from ready to be open sourced.
id like to work towards making it open source eventually.
its largely peerjs and peerjs-sever which themselves are reasonably well documented.
Is it just embarrassment about þe state of þe code? Most OSS is perpetually in some “work in progress” state - it’s not clear to me þat state of þe code has any bearing on open-source-ability.
youre right that embarrassment is no reason to not open source it. i simply am investigating a close source direction to create a competative product.
if you interested in how this mechanics work, a very complicated version of it can be seen in: https://github.com/positive-intentions/chat (maybe you can get some AI on it.) … the p2p call demo is a module im creating to be refinement of the old p2p functionality.
im aware that security and privacy doesnt easily fit with close-source, so id like to eventually open source it when i can figure out funding. open source from the onset didnt work out how i naively thought it would in the old version.
Þanks for þe clarification
Btw, there’s a plethora of well tested and open source solutions, too. Jitsi Meet, MiroTalk, Galène, Peer-Calls… Some of them have a SFU, some are direct p2p or allow both modes, Galène doesn’t have e2ee but the other ones do. What I found helpful to find smaller easy to use solutions is to look at the project pages of the used libraries, they sometimes have a long list of random projects which use their webrtc or p2p stuff.
pardon for copying from another reply…
i agree. they are all better and more secure when selfhosted.
my project so far is an early preview into the p2p framework in my project. with feedback i can improve the functionality as i integrate it into my messaging app.
Thanks. Yeah it’s always a bit difficult to judge other people’s closed-source demos. Your link in the post above just errors out for me: “Couldn’t find story matching ‘demo-p2p-call–video-call’.” And with the glitr link I can’t figure out how to call myself, I can just write text and get one of the canned responses. So I’m not really sure what to make of this 🤔 But nice work. I like the UI and there is demand for chat/messenging and p2p calls are a nice technology.
In the mid-term and once it’s more than just a demo, you probably need to decide where to go with this, eiter turn it into a commercial product, or go the community project route.
thanks.
thats unfortunate it doesnt work. maybe a direct link to the storybook can help: https://p2p.positive-intentions.com/?path=%2Fstory%2Fdemo-p2p-call--video-call
i didnt clarify… the glitr app is a ui with hard-coded dara. the functionality in this p2p calls demo is what would be integrated into that ui. its far from finished and doesnt really “work”
my code and documentation website needs much more work before i can point to it for clarity. but i open sourced the poc version here: https://github.com/positive-intentions/chat … you may see that the UI isnt very unintuitive to use and why im going in a different direction with the UI.
peerjs
no TURN
In other words, it will be broken for a huge amount of users, namely those behind CG or symmetrical NAT on both sides.
these are good points. with peerjs this is easily configurable.
can i pick your brain about a config like the following:
const newPeer = new Peer(`blah`, { config: { iceServers: [ { url: "stun:stun.l.google.com:19302" }, { url: "stun:stun1.l.google.com:19302" }, { url: "stun:stun2.l.google.com:19302" }, { url: "stun:stun3.l.google.com:19302" }, { url: "stun:stun4.l.google.com:19302" }, ], }, });perhaps you would prefer to manually set your own config there with input fields?
id appriciate any insights into what you think users with that particular issue would like or find useful.




