Hacker News new | past | comments | ask | show | jobs | submit login
Launch HN: Hyperbeam API (YC W22) – Multiplayer embeds of any website
96 points by declan_g on Feb 22, 2022 | hide | past | favorite | 63 comments
Hi HN, we’re Philip, Amby, and Declan from Hyperbeam (https://www.hyperbeam.dev). Hyperbeam is an API that makes it easy for developers to embed real-time multiplayer capabilities into their web apps—including any other web app that you want to provide multiplayer access to.

Building software to connect people in real time is hard. We experienced this in college when we built a “watch party” site for people to watch movies together (https://hyperbeam.com). Other watch party solutions were unreliable, so we spent two years building tech to allow friends to watch stuff together with ease.

The key piece was a “multiplayer web browser”. By that we mean a Chromium instance that you embed inside your own web app (i.e. web browser inception) which is actually hosted on a server and streamed via WebRTC, and so can be shared and controlled by multiple people at the same time.

For example, say you have an online tutoring platform. An instructor can open any application in the embedded web browser and then work on it with the student together.

Another use case is making non-multiplayer apps multiplayer. One of our customers wanted to add a collaborative version of Google Slides to their product, so multiple participants could navigate the slides at once. Google doesn't provide an API for that, so users had to screen share, which isn't multiplayer. With Hyperbeam, you just open up a shared instance of Google Slides and then multiple people can control it.

We didn’t learn about those use cases until later, though. What happened was that we grew hyperbeam.com to 150k monthly active users and over 1M hours of video per month, but then it stopped growing. Despite this, we got into YC, and soon had multiple companies asking to buy our multiplayer browsing tech. After closing three deals, we decided to sell our multiplayer web browsers as an API. That way other companies can build products to connect others without going through two years of WebRTC hell like we did.

We allow developers to embed multiplayer web browsers in their web apps with a few lines of code. Users can then visit any website from inside that web app together. Developers can specify control permissions, programmatically navigate to specific URLs, and hide the browser UI so apps appear as if they are natively integrated.

Unlike screen share solutions that upload your personal computer stream to participants, Hyperbeam’s multiplayer web browsers run on our own virtual machines. This eliminates the upload speed bottleneck that many users experience.

We host a Chromium browser instance on our server, record the video and audio output and stream it to all participants using WebRTC. That sounds simple, but hosting full-blown Chromium instances is challenging, especially doing it cost-effectively: what we learned is Chromium instances, at scale, love memory bandwidth a lot more than the amount of memory. Also, network unreliability, like last-mile packet loss, is also a problem, especially audio packet loss which is a lot more noticeable than video packet loss. A simple hack we have in place is literally sending every audio RTP packet twice, which improves audio quality drastically over spotty connections.

Anyone is welcome to get a free playground API key and try our product! Rather than spend time building a UI for that, we’ve just put up a Google Form in the spirit of do-things-that-don’t-scale. Go to https://forms.gle/RSQhbFXbdrcqwqsc9, fill in your email and we promise to send you an API key right away. The API docs are here: https://showy-backpack-b3f.notion.site/Hyperbeam-API-eb9874b...

Pricing is not transparent on our website yet—we’re still working it out. However, we’re going to use the same business model as CPaaS companies such as Agora and Twilio. We’ll charge customers a minimum amount per month and provide a set amount of participant hours. If a customer exceeds the provided participant hours, we continue charging at a fixed rate.

If you want to try our tech in action, you can do that by signing up for free and creating a room using our original Hyperbeam watch party platform: https://hyperbeam.com/app/register

Alternatively, we'll be answering questions live in our HN watch party here: https://gg.hyperbeam.com/invite/w0c6n-Ko

We’re happy to answer any questions you have, and would love to hear your ideas for other potential use cases as well. Thanks!




If anyone wants a demo, all the founders are currently in https://gg.hyperbeam.com/invite/w0c6n-Ko

We'll try to keep the discussion in the HN thread though :)


Curious about how concurrent edits work. In, say, Figma, two users can simultaneously each create a text box and type into it. In my naive understanding of how Hyperbeam works, the remote Chrome instance would be receiving two streams of input events. Would those streams be interleaved, resulting in typing going to the wrong text box for one user? Or is there a different approach?


Yes, the streams would be interleaved.

I'll created an instance you can play around with here:

https://doovvlk32v0gmr9hrf3d9w84m.hyperbeam.com/-rlpzy3aQm6X...


Not sure if this is intentional, but anyone can watch this stream and the content is... sometimes questionable.


Thanks for pointing that out. I've shut down the stream for now. For those that want a demo, we're still hanging around in https://gg.hyperbeam.com/invite/w0c6n-Ko

You can fill out our form here to get an API key which will let you spawn your own instances: https://forms.gle/RSQhbFXbdrcqwqsc9


I love Hyperbeam! Such a good name. You guys definitely have the best name out of all the remote embeddable browser co-browsing products.

I've also got embeddable multiplayer web browsers you can stick in an iframe at https://dosyago.com and an instant demo live now at https://freebrowsers.dosyago.com plus there's also an source-available version on GitHub at https://GitHub.com/crisdosyago/Viewfinder

And I also applied for YC S22. I guess... there goes my application! and I don't need to wait for the rejection now, heh.

Seriously tho, I love your polish and how you've beautifully marketed it to a particular social watch party niche. Very cool!

And looking at your demo, the way it's running a desktop browser from mobile, I'm guessing you maybe use Guacamole and VNC to a remote virtual desktop?


Thanks! That name took a lot of thinking for sure :D

Good luck for YC, and don't give up if you get rejected, it took us three tries to get in haha.

We don't use VNC, we send an H.264 stream over WebRTC. Also, checked out your demo, and it seems you use VNC?


Hehe, why would you think my demo uses VNC? It doesn't look anything like that. VNC always displays a real browser in a desktop like environment, like Hyperbeam looks like. VF just shows the viewport of each tab, the actual browser controls are clearly custom, and they're on the client. I'm so puzzled you thought mine was VNC! :D ...I guess you're maybe using https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capt... / getDisplayMedia (maybe with an extension to enable permissions for the full desktop) to create the video stream.

Anyway, yours is cool. I actually just capture the remote tab viewport and stream over websocket or WebRTC checking whichever is faster.

3 times is impressive. But I think I beat you there: I've applied to YC like every batch since 2015 with a variety of ideas the last couple with the browser stuff. I think they're never going to let me in. They just hate me. I don't have the creds (no fancy college, no CS degree, no connections)...I live in Asia. And I'm solo founder. :)

Haha, I don't think I'll stop applying tho maybe :D

Edit: here's a login link for multiplayer on one demo server: https://demo-vfp-us-iowa.dosyago.com:8002/login?token=bhvNDh...


Have you thought about joining a founder community? I'm part of this one called https://founderscafe.io and it's a bunch of solo founders co-working together every day. There's also some YC alum like Rishi, Jon, Nemo, Nikhil, etc., who are really active here and have helped people with their startups & YC apps. So fucking worth!!


Thank you, lesbianbezos. Also, great username!!

I really appreciate this :) <3


We would love an API key at https://color.museum to experiment with using Hyperbeam to enable collaborative art (ie. through our https://color.museum/gallery)

Looking forward to it! Thank you.


We sent an API key! Feel free to email us at founders@hyperbeam.com if you need anything else.


On my latest mobile safari I’m getting a blank screen. How come?


Minimalist art?


Is your site satire? You are selling colors?



More like a dystopian hell where the rich literally own the colours of nature and charge poor people for using them.


Did you actually Sell any colors?


Almost $400K worth in the first week.


Is there a tutorial that I can check out to understand this better?


If you're looking for a demo of the API specifically, you can check out the demo video on https://hyperbeam.dev.

If you're looking to try out the embedded web browsers, you can check out our watch party site https://hyperbeam.com, create an account, create a room, and then start up a multiplayer web browser! However, it only shows off a subset of the functionality of the API.

Finally, you can view our API documentation here if you prefer: https://showy-backpack-b3f.notion.site/Hyperbeam-API-eb9874b...


Awesome thanks ya'll. Cool product. My immediate thought is to use it to watch NBA games with friends who aren't in my city.

Going to poke around a bit and see what else I can do.


To add to what Declan said, our original watch party product is still online here: https://hyperbeam.com

I've created a room and I can personally give you a demo :)

https://hyperbeam.com/i/5yzVxENh


Spent some time blocking a big pile of abuse from users utilizing hyperbeam.com for IP anonymity. It left a bad taste for legitimate uses of the system.


Hi jwkane,

I'm sorry that you've been negatively affected by hyperbeam.com. I'd be happy to discuss the abuse you're experiencing, and what we can do to help.

We try our best to discourage hyperbeam.com as an ad-hoc proxy — the goal of the product is to provide hassle-free watch parties.

Edit: my email is scotty@hyperbeam.com


It is not an ongoing issue; I do appreciate the offer of assistance. If we see attacks coming through hyperbeam again that we can't address through other means I'll reach out.


Sweet.

I'm sorry about this — it's difficult to strike a balance between preventing abuse and respecting user privacy. If anyone here is facing attacks, we're available to hop in a call any time.


Your demo video won't play: "Video can't be played because the file is corrupt."


Weird, it's working for me? What browser are you using?


Same for me on Firefox.

https://i.imgur.com/X1LGroR.png


We'll be sure to fix the demo video on Firefox :)


Since AFAIU it's a video stream without any DOM, is there any accessibility affordance?


Currently, we do not have accessibility support for the browser, we only do the video stream. The reason we haven't worked on this yet is because of our focus on watch parties, and the video stream being streamed was usually that of a video itself, so not a lot of accessibility could be added to that use case. But now that we are looking at the bigger picture, we could implement full-fledged accessibility support where we serialize the accessibility tree and send that over instead of the video stream.


Good to hear it's on the roadmap!


Congrats on your launch. I do have one concern though:

> a Chromium instance that you embed inside your own web app

Have you considered the accessibility ramifications of this, e.g. for blind people using screen readers? It will certainly be possible to make this accessible; indeed, that's an advantage of your approach over screen sharing. It won't be easy, but of course I believe it's still important and worth doing. My email address is in my profile if you want to discuss this further.


Thank you!

> Have you considered the accessibility ramifications of this, e.g. for blind people using screen readers?

We are considering the accessibility ramifications now since we've pivoted toward a general API. We didn't focus on accessibility for blind people initially because we were building a watch party platform.

I think offering accessibility features would give us a massive edge against technologies like screenshare! Is there a specific use-case you're thinking of?


> Is there a specific use-case you're thinking of?

The OP mentioned a tutoring use case. If you're going to sell this to educational institutions or companies that serve them, at least in the US, then accessibility is important.


I see. Sorry! I got excited and went in founder mode — for a moment I thought you had a problem we could solve for you :)

Thank you for stressing the importance of accessibility. We're really impressed with the quality of the questions so far.


> indeed, that's an advantage of your approach over screen sharing.

In what way, particularly? it's streaming the video and audio from a remote browser instance, so surely that means all participants will have the same accessibility settings in the remotely viewed instance.


Yes, that's true today. But since they're running a version of Chromium that they control, they can in principle modify it to push semantic information from the Chromium accessibility implementation along with the video stream. That would be much harder for, say, Zoom screen sharing to do, because of the way the platform accessibility APIs are designed.


Ahh -- I see. Informative answer, thank you :-)


To add to mwcampbell's response, my cofounder Amby proposed a possible solution:

> But now that we are looking at the bigger picture, we could implement full-fledged accessibility support where we serialize the accessibility tree and send that over instead of the video stream.

What are your thoughts on this approach?


You probably want to send the accessibility tree in addition to the video stream, not instead of it. Luckily the Chromium accessibility tree can already be serialized and pushed, because Chromium does that between the renderer and browser processes.


Neat, looks like Mighty app but multi-user. Interesting that both companies are YC funded.


Yeah, that's one way of looking at it: a multiplayer Mighty app that you can iframe into your own website.

In terms of how we're different, Mighty focuses on performance while we focus on collaboration.


Cool, looks very similar to https://github.com/m1k1o/neko


There's also https://cryb.app/

They're actively in development and the maintainer is friendly.


Huh, those both mention the same app as inspiration. Neat.


Yeah, Rabbit was incredible. They just had issues monetizing and it died .. heh.


We originally started out as a Rabbit alternative :)

Here's our original launch post: https://www.reddit.com/r/RabbitReddit/comments/efiprp/tuttur...

(We rebranded from Tutturu to Hyperbeam last year)


Congrats on the launch folks!


Thank you!


Interesting! Something pretty similar to what enable at https://www.surfly.com the difference is that we focus more on B2B types of integrations and stream the actual DOM instead of a WebRTC videostream.

Good luck!


Thank you!


The documentation link in OP has a typo. Here's the fixed link: https://showy-backpack-b3f.notion.site/Hyperbeam-API-eb9874b...

Theneo also converted our Notion documentation to a Stripe-like doc page — please let us know what you all prefer!

https://app.theneo.io/demo/hyperbeam/


Link fixed above.


Thanks dang


Congrats on the launch!


Thank you fire!


Thanks!


I'm not sure the API docs are publicly accessible?


Unfortunately the link the post is missing a "1" at the end, here are the links to the documentation:

- https://showy-backpack-b3f.notion.site/API-Design-eb9874bd1e...

- https://www.npmjs.com/package/@hyperbeam/iframe


Link should be fixed above. Sorry about that!




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: