from Hacker News

Brow.sh: a modern text-based browser

by definetheword on 11/17/20, 8:58 PM with 103 comments

  • by freedomben on 11/17/20, 11:42 PM

    Yes it's super slow, but many of the criticisms are missing the point. This enables browsing over SSH when you have low bandwidth. The heavy internetting is done on the remote machine (like a cloud VM for example) using blazing fast data center internet. A personal example may explain why I love this.

    For several years I lived in rural Alaska where the fastest internet one could buy was $120 a month (I think) and a blazing 512 Kbps. I was a developer (working remotely) who's shop had adopted Docker, and it literally took more than 24 hours sometimes to download a docker image. By necessity I switched to having my whole development environment on a cloud VM. The Cloud VM had gigabit connection so docker downloads were blazing fast. All I needed to send across the wire was a tiny bit of text. Mosh was an absolute life saver by the way. I once flew from Anchorage to Salt Lake and had the same mosh session pick up like nothing had happened thanks to roaming abilities.

    Browsing heavy (i.e. modern) websites was often very difficult too. With high latency and a lot of heavy Javascript sites requiring 10 MB or more, it was a nightmare. I occasionally went up to Eagle Alaska, where internet was even worse. The nearest cell tower was a 4 hour drive away, and the only internet was at the "library" or a crappy satellite link (that far north satellites get less useful). A tool like Browsh is a life line to people in situations like that.

    In related news, when people talk about the merits of developing with just Vim vs. an IDE, I also recount the same story.

  • by tombh on 11/18/20, 3:45 AM

    Dearest fellow terminal lovers,

    The creator of Browsh here. I have such mixed feelings about seeing Browsh here again. I poured soooo much geeky passion into it, but I've just not had the opportunity to take it to the next step since its initial rise to stardom.

    There have been a couple of contributors recently and I haven't even been able to get the CI to run because I've lost The Knowledge. I even had to take the demo services down `ssh brow.sh` and https://html.brow.sh just because there was a bug and I couldn't remember how everything worked.

    The plan for the next step is to write a dedicated text-based UDP protocol, maybe with some video compression tricks, so there's no dependency on Mosh then (whose development also seems to have stalled BTW). That way the client will be extremely lightweight, and work in either a normal browser or a tiny CLI application.

    As others have faithfully recounted, the entire raison d'etre of Browsh is to fight against the increasing bloat (and bandwidth costs) of the web. I travel a lot outside the Western world and am often surprised just how many MBs I need to consume the wealth of text on the internet.

    I hope the next time Browsh arrives on the frontpage is because of a new version.

    Thanks, Tom

  • by Zhyl on 11/17/20, 10:51 PM

    If people are looking for an actual modern take on text based browsing, I would refer them to the work of Igor Chubin.

        curl https://v2.wttr.in/London
    
        curl https://cheat.sh/rsync
    
    With a supported terminal:

        curl https://v3.wttr.in
    
    And also:

        https://github.com/chubin/awesome-console-services
  • by dang on 11/17/20, 10:25 PM

  • by trollied on 11/17/20, 9:54 PM

    It’s good to see terminal-based browsers are still being developed.

    I used to use w3m and lynx back in the day, and found them to be very useful at times (such as only having a GPRS signal available - makes browsing on a “full fat” browser impossible). Paired with screen (though I guess mosh would be a good option these days) to enable a resumable session in case the network dropped, of course.

  • by definetheword on 11/17/20, 10:40 PM

    Looks like the author had to take some of the services temporarily offline. If you use Brow.sh, consider donating!

    " Browsh is currently maintained and funded by one person. If you'd like to see Browsh continue to help those with slow and/or expensive Internet, please consider donating. "

  • by geoffeg on 11/17/20, 9:50 PM

    This is really interesting, I'll have to play around it. I've been browsing news sites with "links" a lot more lately as it usually just gets me the content I want and it does so very fast. No ads, no popups, no JS - just the content. I could achieve the same thing with noscript and a few other extensions but those generally still aren't as fast and simple as links.
  • by WilliamTheFirst on 11/18/20, 5:31 AM

    I could have really used this a while back while doing a web scraping job. While using puppeteer(with chromium), I found that memory usage was quite a huge problem so the best I could do was write scripts explicitly preventing the loading of images and other multimedia assets. I found it still wasn't always enough.
  • by __MatrixMan__ on 11/18/20, 6:18 AM

    I've often thought that ad blockers get it all wrong, we shouldn't be identifying the ads to block them, we should be identifying the desired content and serving it up to the exclusion of everything else.

    The run-a-server-elsewhere-and-connect model of Brow.sh seems ideal for building something that did that:

    - render the page server side

    - check for crowd-sourced filters

    - apply them

    - pass page to user

    I'd happy make cryptocurrency micropayments to whoever contributed the filter that de-bloated that page for me.

    It would be slow at first, but with a big enough cache and enough users...

    Glad to know about this project. I may try and adapt it to man-in-the-middle my own web browsing one day.

  • by jake_morrison on 11/18/20, 3:06 AM

    Back in the 90s I developed a new HR-related web application for a customer in China. Then we found out that they still had a significant number of users on serial terminals, basically a VT-100 with support for Chinese characters.

    So I made the app work with Lynx text mode browser. Magic getting the Internet on a serial terminal.

  • by soheil on 11/17/20, 10:04 PM

    It seems to be incredibly slow which kind of defeats the purpose of having a text-based browser to begin with. I'm not sure, but it looks like it's taking the output of a headless Firefox and turning it into ascii. If that's the case I'd rather stick with something like Lynx, etc.
  • by javier10e6 on 11/17/20, 10:24 PM

    Must check. In my console only Raspberry-pi I use elinks to browse and scrape web info.
  • by formalsystem on 11/18/20, 2:22 AM

    I like this for Jupyter notebooks, slightly quicker than setting up port forwarding
  • by nchase on 11/17/20, 9:55 PM

    last time I tried this it was great on my laptop, but because it uses Firefox in the background for rendering, it brought my t2 small instance to its knees.

    I wonder if they've done anything clever to make it more efficient since then?

  • by GekkePrutser on 11/18/20, 5:03 PM

    Hmm just tried it... It's ok BUT not too happy with it overall..

    On Mac terminal the blocks don't align properly, and on Xterm it starts rolling weird like a CRT TV with the scan lines missing.

    Also the controls are not using a normal menu and keys that we know from lynx/links/elinks. And the donation nag thing is annoying. First convince me it's great, then ask for donations :)

    I love the idea but not the execution.

  • by tbrock on 11/18/20, 1:51 AM

    When I first saw this a while back I got the idea to build a terminal based email client that supported rendering HTML messages using some of the technology behind this.

    I should really pick that up again.

  • by z3t4 on 11/18/20, 9:55 AM

    This is great for remote work where ssh -X lags with high latency. Although I sometimes get stuck (page loading forever. I think it has something to do with the connection to Firefox.)
  • by tinus_hn on 11/19/20, 5:04 PM

    Is this useful for when you need to run a browser on a machine but don’t want to install a display server and all the libraries required for GUI apps?
  • by kilroy123 on 11/18/20, 11:37 AM

    Is https://mightyapp.com/ trying to be the advanced version of this?
  • by ausjke on 11/17/20, 11:03 PM

    All I really need is showing imgs in the console, which w3m-img can do along with w3m but you need an xterm instead of the modern consoles(gnome-terminal, konsole,lxterminal, none can show imgs)

    the docker images of brow.sh needs firefox and the whole pull size is a few hundred MB, can someone list the advantages over lynx/w3m/links2 etc.

  • by ktm5j on 11/18/20, 1:04 PM

    If it's a "single static binary" the _why_ is there a docker image??
  • by ChrisArchitect on 11/17/20, 10:34 PM

    this is not new, (2018) please

    see some previous discussion https://news.ycombinator.com/item?id=17487552

  • by anthk on 11/17/20, 11:03 PM

    If you need minimal JS support, check edbrowse.

    This is just a hipster like brag trying to be "modern".

    If I can't run it under a Pentium3 (at least) at astronomical speeds, this is just a bad try.

  • by zoid_ on 11/17/20, 11:28 PM

    Pretty cool project, didn't feel super snappy on sites which had animation however. Think I'm going to stick with Firefox.
  • by jonathankoren on 11/18/20, 12:12 AM

    It says it's "reducing bandwidth", but then it's downloading all the graphics assests so it can render them in very crappy unicode? Why? Wouldn't it make more sense not to download the graphics at all?