Breach: Hackable Browser Built on Chromium and Node.js
Stanislas Polu recently announced the first public Alpha release of Breach, a modular browser built on Chromium and Node.js.
Polu first outlined the experimental project that was to lead to Breach in the article "The Experimentation Platform to Build a Next Generation Web Browser", saying that the "legacy approach to web-browsing" had gone unchallenged, and didn't cut it for a Web where the browser is "always on, always connected."
Less than a year later, Breach runs on top of ExoBrowser. Talking to InfoQ, Polu said that Breach gives developers the ability to create a new browsing experience using only web technologies.
In the release announcement Polu says that although it is still very young, he believes that Breach will empower its users to hack and modify its behaviour and come up with new and interesting ways to browse the web.
We have designed and entirely coded the Breach API exposed to modules to realize the vision of a fully modular browser where all functionalities are provided by simple and isolated web apps. We merged at least 4 major releases of the Chromium Content API, keeping Breach core engine up to date with HTML5 standards. We also fixed a gazillion bugs, making Breach stable enough to use it as our main browser every day.
Notable in Breach are some features with mod_strip (the default module installed at onboarding), including
- Tabs are FIFO
- Tabs sniff the color of the page
- Typing in the URL bar lets you interactively filter tabs
Polu says these experimental features provide an enjoyable browsing experience, but that Breach gives developers "the freedom to entirely modify its aspect and behaviour and, more importantly, extend it."
With a name like Breach, I interpreted "hackable" in the negative way.
It sounds like a cool idea, but how is it different than, say, Firefox? There are plenty of FF extensions that will completely change how it works.
We went one step further and didn't provide any functionality to the browser to make it entirely built out of modules, and we did it on top of Chromium Content Module. The basic motivations are the same. I also believe that it's probably simpler to rewrite an entire web browsing experience on top of Breach.
Aside from concerns about the name, and some confusion over what Breach was offering, feedback is positive from users who have tried the browser. On Hacker News, user Paul Sawaya said:
This is a great idea. I've wanted to build something like this for a while, but never got around to it. I think people here are missing the point. Firefox and XUL is also a JS-scriptable UI over a browser, but it's a terrible environment to work in.
The UI is the main thing that differentiates web browsers. Our tabbed browsers have looked the same for years now. This is going to enable all kinds of awesome experimentation and customization. I'm super excited to see where this project goes.
Polu says for Breach there is still a lot of work to be done on the technology stack, and the API exposed to module, in the months to come. The aim, he says, is to make it solid enough to be a strong basis for other developers to build upon. Polu says he believes that Breach could also play a role in the convergence of native apps and HTML5 web apps, and he is not satisfied with the Google chome apps model.
Breach is released under an MIT licence. InfoQ readers can contribute to the project by building new modules or participating in the current efforts. Polu says he has been overwhelmed by the recent contributions and feedback, and plans to create a community around the project to move Breach forwards.