Beaker Browser

Rethinking the web browser with peer-to-peer networking

Roman Rodriguez
Offline Camp
3 min readJan 26, 2018

--

At Offline Camp Oregon, a group of peer-to-peer enthusiasts gathered for a discussion on Beaker Browser. Here’s what I learned.

What is Beaker?

Beaker is an experimental peer-to-peer web browser built on Electron. It adds new APIs for building hostless applications, while remaining compatible with the rest of the web. It combines the flexibility of the desktop with the web’s connectivity.

Source: https://beakerbrowser.com/

Peer-to-peer protocol

Beaker uses the Dat peer-to-peer protocol, which is like the BitTorrent protocol. The BitTorrent protocol consists of immutable data and immutable keys. In contrast, the Dat protocol consists of mutable data and immutable keys.

In practice, when you share an immutable hash to an asset using the BitTorrent protocol, you will always find that asset at that address. If someone updates that asset, they get a new hash to the new asset.

In contrast, the Dat protocol acts sort of like a website. You get a permanent address to your assets, and as you update them, anybody that has that address gets the updates as well. This also means that you can subscribe to it, fork it, save it offline, share it offline in a network, use encryption, and more.

The Dat protocol is optimized for larger data sets. You can download the metadata, which gives you access to individual items within it, like a website directory structure. This enables you to access what you need. It is notable that you can get to each piece using the version number, enabling you to access previous iterations. If you exclude versions from an address, you get directed to the latest version.

By using the Dat protocol, Beaker enables you to share files privately, control your data, share websites, use apps online and offline, and see previous versions of your content.

Addresses

Dat content addresses are hard to remember. They look like this: dat://{key}/{filename}. Beaker deals with this by enabling Dat URLs, which perform the same way we use http:// and https:// on the web. Instead of having to type something like dat://f7daadc2d624df738abbccc9955714d94cef656406f2a850bfc499c2080627d4/ to open the RSS Reader, a Dat URL is used, in this case, dat://rss-reader-pfrazee.hashbase.io/.

Currently, Dat discovery uses the existing DNS system for Dat-name resolution, by adding a Dat file under a /.well-known/dat folder on your HTTPS website. This enables access to the site using the Dat protocol, but without needing to remember the Dat address or URL, making it easier to find. For example, if a user browsed to https://beakerbrowser.com, they would be prompted to redirect to dat://beakerbrowser.com for the Dat site.

Using dat:// address in Beaker. Shows number of peers sharing.

Try it out!

This is only a brief introduction of what the browser can do. I find myself discovering new interesting implementations each time I open it up. I encourage you to download the Beaker Browser and give it a try.

For more background on Beaker, you can watch co-creator Paul Frazee’s passion talk from Offline Camp California, view his presentation from the Web 1.0 Conference, or listen to his podcast interview with the New Builders Podcast, all of which are embedded in one handy article.

Happy experimenting!

Thanks to Teri Chadbourne, CMP for editing and support, to Paul Frazee of Beaker for the technical proof, and to Francis Brunelle for introducing me to Beaker and guiding me through this project.

Editor’s Note: This article recaps discussions we had at Offline Camp, a unique tech retreat that brings together the Offline First community. Join us at our next event or sign up for updates and cast your vote on where we should host future editions of Offline Camp.

--

--