Skip to content(if available)orjump to list(if available)

Show HN: PulseBeam – Simplify WebRTC by Staying Serverless

Show HN: PulseBeam – Simplify WebRTC by Staying Serverless

12 comments

·February 5, 2025

WebRTC’s capabilities are amazing, but the setup headaches (signaling, connection/ICE failures, patchwork docs) can kill momentum. That’s why we built PulseBeam—a batteries-included WebRTC platform designed for developers who just want real-time features to work. What’s different? Built-in Signaling Built-in TURN Time limited JWT auth (serverless for production or use our endpoint for testing) Client and server SDKs included Free and open-source core If you’ve used libraries like PeerJS, PulseBeam should feel like home. We’re inspired by its simplicity. We’re currently in a developer-preview stage. We provide free signaling like PeerJS, and TURN up to 1GB. Of course, feel free to roast us

ranger_danger

FINALLY.

Really getting sick at WebRTC services that don't support TURN properly. And people with CGNAT or some type of symmetric NAT often have no choice.

Then half the people tell me it's not necessary, they never had any problems bla bla... well there's tons of people for whom it often doesn't work at all.

brian-armstrong

TURN does seem largely unnecessary. I think the issue is flipped - we'd be better off if people could stop building broken networks with bad NAT.

lherman

That would be ideal. But, I don't believe there is a strong incentive for many existing network to be upgraded without using NAT.

In regards to TURN, it is used only as a fallback.

lherman

Yeah, if WebRTC is the only communication channel, TURN will be needed, especially doing p2p. LMK your experience if you have any questions, hit me up on discord @lherman_cs

westurner

jupyter-collaboration is built on Y Documents (y.js, pycrdt, jupyter_ydoc,) https://github.com/jupyterlab/jupyter-collaboration

There is a y.js WebRTC adapter, but jupyter-collaboration doesn't have WebRTC data or audio or video support AFAIU.

y-webrtc: https://github.com/yjs/y-webrtc

Is there an example of how to do CRDT with PulseBeam WebRTC?

With client and serverside data validation?

> JWT

Is there OIDC support on the roadmap?

E.g. Google supports OIDC: https://developers.google.com/identity/openid-connect/openid...

W3C DIDs, VC Verifiable Credentials, and Blockcerts are designed for decentralization.

STUN, TURN, and ICE are NAT traversal workarounds FWIU; though NAT traversal isn't necessary if the client knowingly or unknowingly has an interface with a public IPV6 address due to IPV6 prefix delegation?

lherman

We don't have an example of CRDT with PulseBeam yet. But, CRDT itself is just a data structure, so you can use PulseBeam to communicate the sync ops (full or delta) with a data channel. Then, you can either use y.js or other CRDT libraries to manage the merging.

Yes, the plan is to use JWT for both the client and server side.

OIDC is not on the roadmap yet. But, I've been tinkering on the side related to this. I think something like an OIDC mapper to PulseBeam JWT can work here.

I'm not envisioning integrating into a decentralization ecosystem at this point. The scope is to provide a reliable service for 1:1 and small groups for other developers to build on top with centralization. So, something like Analytics, global segmented signaling (allow close peers to connect with edge servers, but allow them to connect to remote servers as well), authentication, and more network topology support.

That's correct, if the client is reachable by a public IPv6 (meaning the other peer has to also have a way to talk to an IPv6), then STUN and TURN are not needed. ICE is still needed but only used lightly for checking and selecting the candidate pair connections.

westurner

[dead]

catapart

This could not have dropped at a better time for me! Thanks for putting this together! I was not looking forward to trying to figure out a TURN server, so I'm pretty excited to give this a try.

lherman

Awesome! Yeah I have been doing WebRTC for a while and it's still always a pain to get this stuff up and manage it, I would love to hear what you're building and have you give it a try, feel free to hit me up on discord, username @lherman_cs

threatofrain

What do people here think about Cloudflare's WebRTC stuff?

popalchemist

Is it fully self-hostable?

lherman

Yes, self-host signaling server here: https://github.com/PulseBeamDev/pulsebeam-server-foss

LMK if you have any issues, contributions welcome