Hacker News new | past | comments | ask | show | jobs | submit login
Beaker Browser – experimental peer to peer web browser (beakerbrowser.com)
256 points by rayrag 4 days ago | hide | past | favorite | 58 comments

I tried it recently, and it kinda reminded me of the earlier days of the World Wide Web, with the easy way of just creating websites and publishing them, and everyone out there trying something new and experimenting. Like the "small web" movements popping here and there now, but this one is in fact actually spearheading a completely new platform! And I think the way it's integrated in the browser is brilliant, and unexpectedly to me suddenly puts the Hyper protocol's ecosystem possibly ahead of IPFS in user-friendliness and fun-factor at this moment. It's the kind of a good race/competition between decentralized technologies and their communities happening now, that is so inspiring and awesome to watch and be a spectator to, or maybe even part of! Huge thanks to the authors of the Beaker Browser for putting so much love and care into creating it! <3

> unexpectedly to me suddenly puts the Hyper protocol's ecosystem possibly ahead of IPFS in user-friendliness and fun-factor at this moment

Actually it's been ahead of the IPFS community for a long time even when IPFS was all the hype. IPFS kind of stopped meaningful developments when they started doing ICO and focused on Filecoin. I know the founders of the DAT community have been very skeptical of ICOs and instead quietly focused on actually building the system and the community. Also the fact that this exists without any money incentive by default makes it a superior decentralized technology IMO.

Hyper is a "genuine" open source project that has been set in motion by volunteers and enthusiasts who, for the most part, have nothing to do with Big Tech.

IPFS on the other hand is developed by a well-funded VC-backed company that clearly has a vested interest in somehow "owning" the protocol.

Not saying that there is anything _morally_ wrong with IPFS, but it seems pretty clear that Hyper is better positioned to develop distributed tech.


I would love to see a benchmark of hyper vs ipfs. Anecdotally, hyper is faster and more user-friendly.

Hyper suffers from a branding problem (it's a direct evolution of dat; changing the name didn't help). But it has a strong case for being the best technical solution.

(The problem being: Bittorrent is super effective, but torrents are immutable. How do we make a swarm protocol that supports streams and other datasets that change over time?)

Imo (having built several projects on each of them) both projects have issues from the perspective of anyone wanting to depend on them for any project that has users or customers. But dat/hyper is the only one worth bothering with.

IPFS at this point is a write off for me. It seemed like it was built up as a project that courted the decentralisation/p2p/etc people, then did an ICO off the hype and essentially vaporized. The tech is reasonable, the abstractions and tooling were a really interesting approach and enabled a ton of powerful new things, and they did really well with making it easy to get started and productive. But I'd never build anything on it again because I fundamentally don't trust them now.

Dat/hyper etc. is a great project and ecosystem. Technologically it's incredibly impressive. The project and ecosystem are themselves decentralised (which is a profound demonstration that the people in this community are true to their stated values). Unfortunately this means it suffers from two major, related, problems (which can be framed as selling points, depending on your perspective):

- To build something with hyper you compose small modules. This is an excellent strategy if you can quickly discover and understand which modules to use and how to compose them. There are thousands of tiny useful (often remarkably elegantly written) modules that do useful stuff relevant to hyper and can be composed to do really amazing things - and it's impossible to find them quickly or learn how to compose them except by having hundreds of conversations with people in the community. So it's really not possible to be productive with it unless you're looking to just immerse yourself in it. If you want to build something on it as a dependency without participating in the community - good luck. - Once you've got a project that depends on the ecosystem, it's almost impossible to keep it working and up to date. To find out what the current state of the ecosystem is (which libraries are the current ones, which dependencies should I use for what, what has replaced some previous dependency), again you have to have a lot of conversations or very actively follow other people's conversations. As a dependency, it's a lot of continued investment, and it's probably only worth it (or even possible) to do that if you have a huge amount of spare energy and time (or money to pay other people) to invest in it.

In summary with IPFS the problem is it's vaporware and I fundamentally don't believe the project is safe to build important decentralised projects on. With dat/hyper the problem is the opposite - that it's a completely decentralised community and it's very labour intensive to onboard and then keep up. It's missing the meta layers needed. Neither one is currently the right choice if you want a reliable decentralised stack for something critical. But hyper is likely to become it, and is a great project.

Where did you find community websites for it? I can't find any list of links, and none on hashbase load for me at all.

I can't find any examples of community links or anything built with this

A few things I built for Beaker:

Duxtape hyper://5b69209fc2dfb5eafb82e4031cd43c28ebc61e5cdd4dbdc48310bb62263f53e0/

Sneaky Wiki hyper://1c6d8c9e2bca71b63f5219d668b0886e4ee2814a818ad1ea179632f419ed29c4/

You can find a user list at https://userlist.beakerbrowser.com/

If you're interested in Beaker, check out the website for the tech behind it [1]. I also do a lot of videos on YouTube about this [2], in fact I heard this was on the FP while doing my last livestream.

1. https://hypercore-protocol.org

2. https://www.youtube.com/channel/UCSkcL4my2wgDRFvjQOJzrlg

Huh, Hypercore looks really cool. Any thoughts on the viability of other languages implementing it? Ie, is it small enough that another language could implement the Hypercore protocol (and friends!) and be able to use it? Or is it so huge, don't bother?

I ask because i'm writing a Git-like datastore and am reviewing p2p protocols. My implementation is in Rust, but while there is a beta client[1] of Hypercore, i suspect there's a ton of functionality that i'd need to pull wait on (or implement myself).

How do you see multi-language ecosystems working with Hypercore/Hyperswarm/etc?

[1]: https://crates.io/crates/hypercore

There has been some community movement on a rust implementation but it’s pretty big and still a moving target. I might wait a bit still

Hypercore was formerly known as DAT.

I always have wondered why peer-to-peer wasn’t the obvious solution to hug of death. More visitors? More servers!

But I get that there are extreme technical hurdles here. Iirc Spotify started off with that and abandoned it. If so, the challenges have so far outweighed the benefits.

But it fits my sense of what the web should/could be. Asymmetric connections (slow upload) and hostile ISP TOS really cemented the server/client distinction ... but I live imagining that a different way is possible.

Congrats on getting Beaker to a real place.

A lot of P2P things are encumbered by patent trolls.

such as?

I was under the assumption that Spotify stopped doing that because P2P was getting blocked by networks? Maybe I'm wrong.

I believe it was due to patents that spotify stopped P2P streaming.

Beaker is one of those projects that I just can't seem to find a use-case for personally, but absolutely love the idea.

I really enjoy that it comes up on HN pretty consistently so I can follow up on progress.

Oh - just in case that's a very polite hint - when I post links like that, it isn't in any way to imply that the submission shouldn't have been posted. It's just to satisfy people's curiosity. HN readers like looking at past threads.

HN allows reposts after a year or so, or if a story hasn't had much attention yet. In cases where it has had significant attention in the last year (or so), we mark the repost [dupe] and downweight it. That's not the case here (though I'm sort of playing the "or so" card with respect to May 2020).

Oh no, not at all a polite hint, I really do like when interesting things like this resurface and when there's a link to past discussions on it.

My immediate impression when I saw a list of past HN stories in this case was a sense of "everything had been said and done, over and over" and I was about to add my submission for Beaker's 1.0 release of a month ago because I felt the list didn't sufficiently tell the narrative of steady progress over the years. I ended up not to when I noticed you just picked the submissions having significant engagement, or the ones coming from straight from beakerbrowser or pfraze.

I guess adding links to past stories (at least when not posted by you dang) can signal different things; in this case, maybe including the title may have changed my first impression.

Yes, it's a frustratingly hard problem. I want a way to supply links to past discussions that communicates clearly: "this is just a list of additional things that some of you may be interested in and if you aren't that's cool and this is a fine post and don't worry everything's great!"... except brief. I thought If curious see also would do it—but apparently it doesn't quite land that way with everybody.

You're right that when I post those I filter the list for only the most engaging discussions, because HN readers don't like clicking on things and being taken to something not-so-interesting. Unfortunately that makes it a bit harder to write software to come up with just the right ones.

“If curious see also” sounds perfect to me.

I thought so too! and it seems to have cut down on the misunderstandings...but unfortunately they persist.

Beaker Browser is a perfect example of what I call a “Bloated MVP”: it’s when a team works for years on a product, but neglects to ensure that the product has an actual use case. A couple months ago I wrote about what I see as serious issues with the Beaker project. [1]

[1] https://medium.com/bloated-mvp/beaker-browser-mvp-review-0-u...

I actually think this is fair and I’ve been talking pretty openly lately that we failed to identify a solid market for Beaker. This is why we’ve turned our focus lately to other tools in the ecosystem and been looking more closely for a PMF for the p2p tech. Happy to share more on HN but I’ve talked a lot about it on my YouTube channel already

While it's fair, I think the world is a better place for having projects like Beaker. It's important because despite not having a business case, it's a groundbreaking exploration of what technology can be and a platform for really free experimentation.

I've spent several hundred hours just experimenting within it and testing out ideas or refining things that were not previously tractable. In many cases, simply having beaker with its unique possibilities and constraints as a playground has helped inspire new ideas.

Unfortunately that doesn't automatically translate to anyone getting paid, or widespread adoption, or many other things people use to measure value. But many of the most important things aren't the ones we measure or celebrate.

Looking forward to checking out your videos pfrazee.

While your review makes sense, it feels biased towards the viewpoint that Beaker, and the underlying hyper protocol, are commercial products in search of a market. I don't believe it is the case, the most sensible metric is not always the number of users.

Here's an answer to your question (what is one usecase that Beaker does that existing solutions can't) : Beaker is the easiest way to publish content without forfeiting control. No account to create, no giving away my data, no server to install and sleepless nights to maintain it, no need to remain always up and running for my content to be accessible. The few solutions that exist in this space still rely on some form of hackish UI, if they even have one. With Beaker all you have to do is launch it and use the microblogging app.

On thr contrary, Beaker may not be a product in the nkw usual meaning but that's because it is not an honest comparison: Beaker is a platform to help build products easily, as can be seen by the microblogging "example"

Nothing in my post assumes that Beaker is a "commercial" product, nor that it's in search of any market that's necessarily measured in dollars.

My claim is that projects like Beaker neglect to ensure that any handful of 1-100 people will ever have any desire to use it in their life over their next-best available alternatives, even for free.

When you point out that Beaker is a platform, that doesn't change my claim, it just makes my claim imply that no developer will have a desire to build on it.

Honestly, if there was a reliable public gateway between Hyper and HTTP, Beaker would probably be the easiest possible platform for blogging, with its instant Markdown editing & publishing. Maybe with hashbase as the freemium "hosting provider". Some extra development could then make it a WYSIWYG blogging tool (so even easier) or a photo gallery maker. I would instantly recommend such a gallery tool to all my friends and family. If creating a free account on hashbase was integrated in the gui and easy enough.

The Hypercore/DAT protocol guide is top notch:


I remember trying this and it was OK. It didn't fit my needs however as I wanted to find forks of pages. Unfortunately that isn't possible and one can only navigate revisions backwards, not forwards. Quite a pity.

I don't know how this fits in with IPFS now. dat:// seems to be yet another distributed storage protocol

You can track revisions forward that are by the same author, but you're right that finding forks is not possible with the current architecture.

E.g: when I publish my website, it gets a permanent address, like: hyper://b282d5efe484143816362d33b3f9b3ea45ecfb8a6ada97e278fdfdc6a725e22f/

When I change a file on the page, it is still accessible on that address, and so are the older versions. The same peers connected to the address will transparently receive the update and seed that as well.

And yes, it's totally separate from IPFS, but is built from many of the same ideas. Dat started back in like, 2011 or so? This is a good high-level overview of how protocol works: https://hypercore-protocol.org/protocol/ - the fundamental unit of storage is hypercore, the append-only log. IPFS's structure, the raw merkle tree, requires another layer on top to provide mutability, like IPNS or DNSLink, but I do not believe that these provide the same guarantees of "auto-propagate updates without loss of older version."

Hyper*/Beaker also provides mechanisms to use centralized authority like DNS to provide human-readable resources, that simply point from the DNS entry to the hyper URL.

>> The big difference: Beaker can host websites.

So, for individual user to host a website, he/she need to keep his/her hosting laptop alive all the time?

You're right, you or some peer needs to keep it online. That could be a service, or using the hyp cli tool, or beaker itself, or etc. There's gotta be one peer somewhere.

EDIT: don't talk about up/down votes, my bad

I don't know the Hypercore community well enough to be able to say for them, but I know it's similar with IPFS, and for it there are already a few commercial services providing such kind of hosting/replication (a.k.a. "pinning"). During a recent hackathon at my workplace, I led an experimental project based on such services:


There are several such things for Beaker/dat/hyper* too!

https://hashbase.io/ is the one by the Beaker team.

I'm particularly excited about the prospects of setting up a peer of my dat archives on my mobile phone. It's an always on, power efficient computing device. Not ideal for speed, but seems like a great fit for a last-ditch-effort layer of redundancy when hosting on hypercore.

Like https://hashbase.io/, which you can use (very intuitively) from within beaker to add a stable peer. Which you know because you made it all :D

There used to be a service/project called Hashbase[1] that would "pin" (aka seed) a site for you. Looks like it's inactive, though, which is a shame since it feels like something along these lines would be pretty necessary for any Beaker sites you might consider remotely real/serious.

[1] https://github.com/beakerbrowser/hashbase

It's still there and working: https://hashbase.io/

Huh, last night it was timing out for me. First load was slow today, but came up eventually. Thanks for the heads up!

It looks neat, and agree with @akavel that it reminds me of the early days of the WWW (remember the Amaya browser from W3C with built in web page editing!).

Is this all about circumventing censorship? Would be cool if it was also backwards compatible with the current centralised web, i.e. once you "publish" your peer-to-peer site that it'll also upload it to some global shared host (like the WP/blogger.com kind of model) for people on non-Beaker (or uncensored) connections to be able to access the sites - would maybe make it more viral too..

It is backwards compatible with the current web. It opens as a chrome fork and you can navigate to any ole http(s):// URL with it. Where it gets magical though is when you add a DNS record to your domain that lists the dat:// protocol address for your site.

Basically, you can add P2P support to your site with graceful degradation back to a centralized server.

It's brilliant.

Someone has to pay for that shared hosting though, which is why free shared hosts always fail in the long run, a la GeoCities.

I don’t think there’s anything stopping someone from building a service that mirrors DAT content to a shared hosting service, but to me it wouldn’t make sense for it to be built in to the core platform.

So apparently it can host websites. But the website needs seeders who are online. Anyone can be a seeder with a click of a button.

Question: Can this host big websites (eg 55 TB SciHub), where most seeders are only willing to give <1GB partial?

I don't think the current software has manual knobs for users to choose the seeding strategy like that, but the protocol totally allows for something like that

Are there any example Hypercore websites? I had a look around but couldn't actually find many to test out in Beaker.

It's really cool, that goes without saying. That being said, why does this need to be its own browser? It would have so much more success as a user friendly server application.

People rarely have interests outside of alternative browsers other than for education, software politics, or buying drugs.

It started as a browser at first, though it appears Paul and the team have stepped back from the browser for now and are focusing on the core underpinnings of the system and revamping the libs/SDKs/CLIs for Hypercore.

I believe their gameplan is to work through a few challenges this way like adding support for multi-writer archives before returning to Beaker with a bucket of gold improvements for its foundation.

I love the Beaker Browser and all it's features. Very happy to see it's continued work. I wish this was more of an extension + daemon instead of it's own separate browser. I have it installed but I always forget to use it because there isn't much content to see yet.

https://hypercore-protocol.org/protocol/#hyperswarm More technical info on the p2p aspect(its DHT-based)

Whenever Beaker or dat:// is mentioned I feel the urge to tell people to also check out ZeroNet, which is another attempt to create a p2p internet.

My work proxy is blocking the beaker browser website... they block anything cool like this. Too close to filesharing.

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