Show HN: Neko – Self hosted virtual browser that runs in Docker and uses WebRTC
github.com
github.com
Being able to watch videos with someone in perfect sync is a great experience. It's not the same to just sync two video elements, but you actually can scroll the page and feels like you are sharing the same screen.
This and https://github.com/giongto35/cloud-morph I think have the chance to really inspire/change the next generation of products that get built in the space.
And thanks, I didn't know it
When I first clicked I thought it was going to be for programmatic testing of code.
The other exciting thing about Data Channels is that you can send lossy/unordered messages and get flow control. You can know how much data you can send and how fast. You can build faster and more responsive data APIs that way!
Normally for this kind of thing you need an OS-level component.
There's something on the GO side but trying to find the bridge on Vue side
https://github.com/m1k1o/neko/blob/master/server/internal/we...
idk maybe somewhere in here https://github.com/m1k1o/neko/blob/master/client/src/compone...
I had to deal with this problem too with regard to remote control somehow without installing an OS-level app but that didn't happen went a different route.
Idk this is a cool project, looks like it is possible to do remote control with webrtc. And webrtc as said above can replace websocket for data transfer.
https://github.com/maxogden/screencat
ehh then again:
> On the host side the app must synthesize mouse and keyboard events on the host OS. This is the tricky part, and the only part where a custom native node addon (C++) is required.
Yet another cool project robotjs hmm
Hmm that's cool I was not aware of this thing, not surprising but still cool to find out now.
Is this just a docker-compose setup, or did you write the code? I see some go code in there, did you write the WebRTC server stuff yourself? If so, how come it's not published as a normal package which doesn't require docker?
I'm asking because I'm interested in remote desktop solutions, but in many cases I don't want/need docker, so any novel remote desktop utilities are interesting to me.
Although, I think about publishing the core of it as a package, fully fledged alternative to noVNC. Where X server desktop can be shared using WebRTC technology to a browser.
I think that would be nice! There are a lot of ways to approach this (I've used xpra, vnc, remote X, xrdp...) and there are pros/cons to them all. It might be useful for more people without the docker requirement :)
From the github....
> Why n.eko? > I like cats (Neko is the Japanese word for cat), I'm a weeb/nerd.
Neko is a self-hosted shared browser, which was built in response to a product called Rabb.it shutting down. Rabb.it had ~4 million MAUs and raised a series B before shutting down due to investors pulling out last-minute during their series C fundraising.
Rabb.it was focused on watch parties. There are a few reasons why shared browsing is more appealing than video sync and screenshare for this use case:
1. Screenshare requires good uplink—some people only have good download speeds
2. Some people are uncomfortable with sharing their screen, nobody likes being judged for their bookmark choices
3. Nobody acts as a "host", control can be passed around to anyone and people can leave whenever they want
In other words, you get the content variety of screenshare, but with the convenience of video sync.
And now for a shameless plug :)
Hyperbeam (formally Tutturu.tv) is a site I built in 2019 for my capstone project at the University of Waterloo. I built it because I wanted an easier way to watch anime with my friends, and decided to build something similar to Rabb.it. It's hosted and free! https://hyperbeam.com
Outside of the points that Scotty made, not everyone has access to a computer, or don't have good enough ones to handle streaming as smoothly. In fact, there are multiple use-cases for this technology, considering it can work as a "cloud browser", either storing information or being completely disposable (as in, the whole browser activity/session/data gets destroyed after usage or on-demand). That said, for what we're used to, a lot of people use it for watch parties so they can share "a bit of the Internet" between friends, family, and even completely strangers!
And I say "we're" because I work on a similar, open-source, "Rabb.it alternative" (or VM-sharing platform, however you prefer to call it): https://cryb.app
That said, that requires self-hosting, so feel free to check out Hyperbeam if fiddling up with configuring Node.js applications and Docker apps is not your thing! But if you wanna give yourself an adventure for this use-case, go ahead :)
So, pros and cons of each approach
It also raises the bar for MiTMs to intercept your session cookies significantly.
And MitM network traffic loggers.
That said, I guess everyone's threat model is different and maybe a remote browser like this solves some problem for them despite those constraints.
Or is it about corporate laptops possibly spying by taking screenshots and key logging?
I just meant we are seeing that type of tech start to pop up with Stadia and Xbox cloud gaming, as the gaming industry being an early adopter of this new web paradigm. I think we will see more industries begin to explore the space and the possibilities there.
The first use case I personally want to see handled is a set of inline browser developer tools that I can access from within a web page, meaning also across any device, without using an additional third party browser or native tooling.
So if you have better down link than uplink, what is really common with asynchronous digital subscriber lines, this is definitely the better choice.
Keep it up!
I used an app called Puffin on iOS in the past and have wanted something similar for the same reasons the author listed.
I wonder if there is any real rationale behind it, or if the author simply finds a cat's chocolate starfish particularly amusing?
Under "Why n.eko?"
>> I like cats (Neko is the Japanese word for cat), I'm a weeb/nerd.
>> But why the cat butt? Because cats are assholes, but you love them anyways.
I was very happy to see that this was not a cliffhanger.