What / why / how#
The Web is our only hope for a platform that provides permissionless user agency. This project is about scratching that itch, building a Web based user agent that can play new tricks.
Our mascot is a beaver because they are fantastic animals that heal their environment; read https://www.noemamag.com/we-need-to-rewild-the-internet/ for a good introduction, and come with us rewild your web!
We build on Servo because despite a new wave of browsers being built, they mostly go with forking blink, and that's not how we will diversify the Web. Also this is a very fun project to contribute to!
The end goal is to have a suite of Web user agents. Running on top of an existing OS is a temporary stop-gap, because being a second class citizen on someone else's platform is a dead end. We will create new personal computing environments for mobile, desktop, media players, etc. We have a long road ahead, but we're not in a hurry.
We hang out on Servo's zulip if you want to chat about the project.
Building#
Prerequisites#
- Install the
forkmeutility from https://tangled.org/me.webbeef.org/forkme - Run
forkme init - From the
sourcedirectory, run./mach bootstrap --skip-lintsto setup Servo build dependencies.
Desktop builds#
- Update with
forkme apply - Build with
cargo build -r -p browserhtml - Run with
cargo run -r -p browserhtmlor directly from thetargetdirectory as usual for Rust projects.
The current UI allows multiple windows, and each one is a simple tiling window manager. There is also a floating search window.
Mobile builds#
The only tested platform is the Pixel 3a running Mobian (see https://wiki.debian.org/InstallingDebianOn/Google/Pixel3a).
First create a sysroot by running sysroot.sh in the scripts directory.
Then build with ./build-arm64.sh or ./build-arm64.sh production
The build script expects to be able to ssh with key authentication to mobian@mobian. You can then run on device with this command:
mobian@mobian:~$ ./browserhtml/browserhtml
Note that you will have to set these 2 environment variables:
- SURFMAN_FORCE_GLES=1
- WAYLAND_DISPLAY=wayland-0
Here's what this looks like