Project of the Week: Beaker Browser
This week we caught up with Paul Frazee, creator of Beaker Browser. Beaker is an experimental peer-to-peer web browser that uses the Dat protocol to host sites from users’ devices.
What is Beaker and why did you create it?
Beaker is a participatory browser. It's a browser for indie hackers.
The Web is closed source. If you want to influence how social media works, you have to work at Facebook or Twitter. For search, Google. Control is in the hands of companies, rather than the users themselves.
With Beaker, we have a new Web protocol: the Decentralized Archive Transport. "Dat." It creates sites on demand, for free, and then shares them from the device. No servers required. That's our innovation.
When you visit a Dat site in Beaker, you download the files. The site is yours, forever. You can save it, fork it, modify it, and share your new version for free. It's all open-source.
So that's what it's about: We're making a browser for open-source Websites. We want it to be a toolkit for social hacking.
Who should be using Beaker?
Hackers. Modders. Creative types. People who like to tinker.
How do I create a new project that uses Dat?
We've got a command-line tool called bkr that's kind of like git + npm. Here's creating a site:
$ cd ~/my-site
$ bkr init
$ echo "Hello, world!" > index.html
$ bkr publish
And here's forking a site:
$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "My fork has no regard for the previous index.html!" > index.html
$ bkr publish
Those sites then get hosted out of your browser. It's a little like BitTorrent; you share the sites in a P2P mesh.
If you want a GUI, we have some basic tools built into the browser, but we're pushing those tools into userland. It's all going to be moddable user apps.
Why did you choose to build Beaker on Electron?
It was obvious for this project. If I forked Chrome myself, I'd be writing C++ right now! Nobody wants to do that. I know the Web stack, and I can work quickly with it. It's a no-brainer.
The truth is, I'm not sure I could do any of this without Electron. It's a great piece of software.
What are some challenges you've faced while building Beaker?
Half of it is poking at the tools and figuring out how much I can get away with.
Making the browser itself was pretty easy. Electron is practically a toolkit for making browsers. ...Except for the browser tabs; that took me forever to get right. I finally broke down and learned how to do SVGs. It's much better looking, but it took 3 or 4 iterations before I got that right.