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.
Hackers. Modders. Creative types. People who like to tinker.
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.
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.
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.
It’d be really great if I could dock the devtools inside a webview.
Secure DNS names for Dat sites. A socially configurable URL scheme, called the “app scheme.” More Dat APIs.
We have lots of open issues. Don’t be afraid to ping me. #beakerbrowser on freenode. We keep a page for contributors and we’ll add you to it. And if you visit Austin, I’ll buy you a beer.