Zum Hauptteil springen

Projekt der Woche: Beaker Browser

· Die Lesezeit beträgt 4 min

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.


Was ist Beaker und warum hast du es geschafft?

Beaker is a participatory browser. Es ist ein Browser für Indie-Hacker.

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. Kein Server nötig. Das ist unsere Innovation.

Beakers Protokolle

When you visit a Dat site in Beaker, you download the files. Die Seite ist für immer Ihre. You can save it, fork it, modify it, and share your new version for free. Es ist alles Open-Source.

So that's what it's about: We're making a browser for open-source Websites. Wir wollen, dass es ein Toolkit für Social Hacking ist.

Wer sollte Beaker verwenden?

Hacker. Modder. Kreative Typen. Menschen, die gerne basteln.

Wie erstelle ich ein neues Projekt, das Dat verwendet?

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 "Hallo, world!" > index.html
$ bkr veröffentlichen

And here's forking a site:

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "Meine Fork hat keine Rücksicht auf den vorherigen Index. > index.html
$ bkr veröffentlichen

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.

Warum haben Sie sich entschieden, Beaker auf Electron zu bauen?

It was obvious for this project. If I forked Chrome myself, I'd be writing C++ right now! Niemand will das tun. 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.

Was sind einige Herausforderungen, denen du beim Entwickeln von Beaker begegnet bist?

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.

In what areas should Electron be improved?

It'd be really great if I could dock the devtools inside a webview.

Was kommt als nächstes in Beaker?

Secure DNS names for Dat sites. A socially configurable URL scheme, called the "app scheme." More Dat APIs.

Für Leute, die sich für das Projekt interessieren, in welchen Bereichen braucht Beaker Hilfe?

Wir haben viele offene Fehler. Haben Sie keine Angst, mich anzupingen. #beakerbrowser auf Freenode. Wir haben eine -Seite für Mitwirkende und wir werden Sie hinzufügen. Und wenn Sie Austin besuchen, kaufe ich Ihnen ein Bier.

Any Electron tips that might be useful to other developers?

  1. Benutzen Sie die Build-Werkzeuge, die dort draußen sind. Sie wollen nicht mit Ihren eigenen Lösungen ringen, vertrauen Sie mir. Benutzen Sie electron-builder. Verwenden Sie eine Boilerplatten-Repo.
  2. If you need to open an issue in the Electron repo, go the extra mile to make it easy to reproduce. You'll get a response much more quickly, and the team will appreciate it. Even better, try fixing it yourself. It's actually pretty interesting to see the innards.
  3. Read through all the guides and advanced docs at least once.
  4. Don't build a browser, it's a saturated market.