You've done it! You've found Browser.JS. But now what? Why does it exist, what does it do, why should I use it?
All will be answered soon™
Browser.JS was created as a means to bypass censorship by masking web traffic for sites over websockets.
Alright, that's not really why it was created, but it's what it is now. Browser.JS was originally created because someone told me I couldn't get porn through the school firewall without using a VPN, AnyDesk, or mobile data.
Turns out you can get porn through the school firewall, but I digress.
Browser.JS bypasses censorship by pushing traffic to a website through one or more websocket connections. This makes it far harder to run DPI on, as it looks like standard HTTPS traffic.
A lot of people don't have access to the entire web, and Browser.JS helps circumvent restrictions placed on the network - information wants to be free, this is a tool to assist in that. By deploying this (not on Heroku!), you're enabling people who may not be able to get to the outside world by other means access to the internet. Whether that be people in countries where oppression is extreme, or if they're in a domestic violence situations, Browser.JS can help.
There are two components to Browser.JS as it stands right now. A client and a server. The server can be put behind a reverse proxy like nginx (and it's recommended you do so), and the client consists of static files.
To run the server it's as simple as:
npm i
npm run start
Then, all you have to do is change the websocket server configuration on Line 90 of index.html and Lines 10, 46, 50, 52, and 58 of worker.js
That's it! You're done. You can now browse to the place you put the client, and all things going well you'll be looking at something like this:
A demo is available over here