
Show HN: Breach – A modular browser built on Chromium and Node.js - spolu
http://breach.cc
======
skrebbel
I'm trying to put this as constructively as I can: Proudly dismissing Windows
on the second line of your copy makes me not want to take you seriously.
There's nothing wrong with not supporting certain platforms, but bragging
about it makes you seem a bit snobby.

EDIT: And I'll grumpily admit that this also bugs me because Windows is me
favorite OS and Breach looks like a thing I would actually use. I hope its
just circumstance. And not some goal in itself to not support it out of some
far fetched principle.

~~~
spolu
Hi skrebbel, didn't want to appear snobby at all... We just didn't have the
time to port the whole thing to windows :(

What would you write in that button?

~~~
skymt
Replacing "only" with "now" (or nothing at all) would improve the tone.

~~~
spolu
Done! Thanks.

~~~
LocalPCGuy
Better yet, have a little spot where you ask for developers with experience
porting things like this to Windows for their help.

~~~
tosh
Or ask people from other platforms to sign up for a mailing list to be
notified once you have something for them.

------
shawnz
What about this doesn't also apply to Firefox? It too is open source and
modular, and also written in Javascript (though combined with XUL rather than
HTML, and using Gecko instead of Webkit).

~~~
swift
That was my reaction as well. I was pretty interested to see a browser
genuinely written entirely in JavaScript, which would at least be a new thing.

Since it seems like the developers are posting in this thread, could you talk
a little about the differences between Breach's approach and Firefox's? I
suspect they must exist mostly in the node.js layer - which tasks is that
layer responsible for?

(Edit: I see you replied to the parent comment while I was writing this one.
=)

~~~
Excavator
How do you define "genuinely written entirely in JavaScript"?

Is it covered by something like links/lynx in a JS based RISC emulator¹ or the
Firefox OS web browser app²?

[1] [http://s-macke.github.io/jor1k/](http://s-macke.github.io/jor1k/)

[2]
[https://github.com/mozilla-b2g/gaia/tree/master/apps/browser](https://github.com/mozilla-b2g/gaia/tree/master/apps/browser)

~~~
swift
Those are interesting projects for sure, but for me neither of those really
qualify. I'd want to see the core browser algorithms written in human-readable
JavaScript - things like HTML parsing, CSS layout, and rendering.

------
petercooper
OK, it's not quite the same but last week Robin Berjon wrote "Web 2024" which
spoke as if from the future and he said: _" This is 2024. In terms of the
ecosystem, not only do all browsers have large chunks implemented in
JavaScript but at some point someone started a pure-JS browser from scratch.
It was initially meant as a joke, but this 'Inception' browser caught the
fancy of the ever-resourceful JS community and quickly grew in usability."_
[http://berjon.com/web-2024/](http://berjon.com/web-2024/)

------
psawaya
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.

~~~
spolu
You perfectly captured the spirit of the project! :)

------
hysan
Is there an RSS feed for the blog?

Sidenote: It's a huge pet peeve of mine when people put up "blogs" without RSS
feeds. How are people supposed to follow your updates?

~~~
bevacqua
Ugh! Nothing gets more on my nerves.

------
rakoo
This is a neat hack on current technologies. Reminds me of uzbl [0] in the
separation of modules, each one being good at only one thing and doing it
well.

What eventually killed uzbl [1] was the difficulties working with IPCs; I hope
you overcome this and build something even greater !

[0] [http://www.uzbl.org/readme.php](http://www.uzbl.org/readme.php)

[1]
[http://dieter.plaetinck.be/luamail_a_mail_client_built_into_...](http://dieter.plaetinck.be/luamail_a_mail_client_built_into_luakit.html)

------
elwell
Not the most assuring name for an application I send nearly all my personal
data through.

~~~
VogonWorkEthic
I didn't think it until you said it, but now I totally agree :)

------
dbpokorny
I suspect that asm.js will obliterate the existing space of web browsers soon.
They are bloated dinosaurs from the last millennium. In fact, a "browser-in-
browser" project along the lines of jslinux and vim.js, where the entire
browser tool chain is emulated (in the browser) is possible.

If a browser can be shown to be a lightweight dev tool with integrated
toolchain servicing CPython, C, and JavaScript, rather than a glorified porn
watching device, then there is hope for civilization.

It is really very nice that the source code is available. I do hope that open
source will eat Capitalism alive soon. Not to mention copyright law. Right
now, the tech industry looks like a bunch of crackpot inventors and psychopath
totalitarian wannabes.

~~~
tlrobinson
Is this satire?

------
Mikeb85
Cool project. The fact the whole UI and app is scripted/built with JS should
make modifying your browser trivial. I like.

~~~
mateuszf
Finally way to fix Chrome dumbified gui and add vertical tabs.

~~~
mkstowegnv
my kingdom for tree-style tabs with labelable nodes!

------
616c
As a newfound convert to the Conkeror browser, which basically allows you to
configure everything through JS and use MozREPL to talk to your browser
instance purely through JS, how is this different (notwithstanding the obvious
choices in architecture and JS engines)? I mean, it seams like the minimalist
JS-run browser has been around for a while (and if not JS, Uzbl did Python as
mentioned below, Luakit does Lua). Granted the others do not really run up and
down the JS stack, with or without a separate conf language, but I do see this
as Conkeroresque.

Am I wrong?

------
0x420
This is very cool - I just figured out how to shrink the top strip to 25px
from its original 45px in about 5 minutes. Very refreshing compared to
modifying Firefox.

~~~
spolu
That's exactly what we are after. Awesome!

------
ianbicking
You should check out the Browser API in Firefox OS:
[https://developer.mozilla.org/en-
US/docs/Web/API/Using_the_B...](https://developer.mozilla.org/en-
US/docs/Web/API/Using_the_Browser_API)

Is a similar concept since all apps on Firefox OS are built on HTML, including
browsers.

------
robert_ak
Why does it connect to data.breach.cc at startup?

~~~
gigonaut
looks like that is where it goes for auto updates.

~~~
spolu
That's it

------
jacob019
Was hoping to find a JS interpreter written in JS (like pypy) with browser on
top.

~~~
Excavator
js.js¹? Also, take a peek at repl.it if you haven't already

[1] [https://github.com/jterrace/js.js/](https://github.com/jterrace/js.js/)

[2] [http://repl.it/languages](http://repl.it/languages)

------
OutThisLife
Neat, wish I could test on Windows. I'd love to see the performance.

~~~
romanovcode
You would probably be disappointed.

~~~
noinput
[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

last sentence.

~~~
cyphunk
second to last sentence

------
davidcollantes
Serious question: how hard is it to sign an OS X application?

~~~
acveilleux
100$, that's how hard.

------
LukeB_UK
Atwood's law in effect?

~~~
dufferzafar
"Atwood's Law: any application that can be written in JavaScript, will
eventually be written in JavaScript." \- [http://blog.codinghorror.com/the-
principle-of-least-power/](http://blog.codinghorror.com/the-principle-of-
least-power/)

------
dav-
Seems to be very unstable on Yosemite Beta 2. I tried loading this thread, and
it the HTML view froze immediately. I then tried to load up Reddit, and it
just wouldn't load.

It's a really cool concept, though, I look forward to seeing where it goes. It
would be super cool if it became stable enough to be my main browser, because
I love the customizability.

~~~
spolu
Hi Dav. Behaves really bad ATM on Yosemite unfortunately indeed :(

------
shib71
I would be very interested in seeing a tutorial for how to build a custom
developer tool in this.

Something I've been very interested in over the last couple of years is the
idea of creating once off, task specific, development and introspection tools.
Breach seems like the perfect environment for that kind of thing.

------
jannes
I find the amount of files these JavaScript projects require astonishing. On
OSX this app's application bundle contains 4046 files and 1018 directories.

Contrast that with Google Chrome wich has "only" 388 files and 577 directories
in its application bundle. (a lot of empty directories apparently)

------
stuaxo
So V8 was taken from chrome, it is then used to launch chromium which has its
own copy of V8 on the inside.

~~~
VogonWorkEthic
yeah, basically.

------
iamtew
I would like to try this out but it crashes when I try to start it and dumps
core.

I raised an issue here:
[https://github.com/breach/breach_core/issues/95](https://github.com/breach/breach_core/issues/95)

------
fn42
I like this a lot, the module handling is excellent + certainly brings another
level to browser extensions

dunno if anyone else had this problem but I had to manually set
$CHROME_DEVEL_SANDBOX on arch

CHROME_DEVEL_SANDBOX=`locate chrome-sandbox` ./breach

------
saraid216
This seems oddly relevant: [https://www.destroyallsoftware.com/talks/the-
birth-and-death...](https://www.destroyallsoftware.com/talks/the-birth-and-
death-of-javascript)

~~~
spolu
haha :) Yes... influenced the conception of Breach for sure!

------
o_____________o
Loaded initially, installed mod_strip, crashed, now crashes upon load. OSX
10.9

~~~
jack_jennings
\+ 10.7.5

opened an issue with stack trace here:
[https://github.com/breach/breach_core/issues/59](https://github.com/breach/breach_core/issues/59)

------
integraton
Well, I think this is extremely cool. The concept is great, the minimalist
mod_strip is thoughtfully designed, and even as someone who isn't a fan of
JavaScript I think it makes a lot of sense in this case.

------
Artemis2
The idea is great, but in a world where browser performance is a competition,
writing a web browser in Javascript _might_ not be the best.

The interest here is learning, and it looks like Breach is very good on this
point.

~~~
Orva
Yeah, just like Firefox which is pretty much Javascript and XUL on top of
Gecko :)

~~~
volaski
I don't use Firefox anymore because it's so much slower than Chrome,
especially when using firebug. Speed IS important. Whenever I see Mozilla
release new versions like every day, with new features that I will never use,
I wish they would just drop everything and focus on improving performance.

~~~
mccr8
There are many of us are Mozilla who focus primarily on performance
improvement. The fact is, though, that performance improvements usually are
not splashy enough individually to be added to release notes. "Improved
performance measure X by 15% in circumstance Y!" is not going to thrill
anybody, even if it is important. Please don't take the release notes as
representative of where our engineering effort is spent.

------
hexleo
Every companies can build their own browser. It's a good thing for WEB
developers. The companies can limit their works internet behavior. For me, may
be some day I can use this to build my own browser.

------
alexvoda
This feels quite similar to [https://mozillalabs.com/en-
US/chromeless/](https://mozillalabs.com/en-US/chromeless/)

To bad Mozilla abandoned that project years ago!

------
snarkyturtle
Anybody reminded of Sencha? I don't think any UI should be coded in JS,
especially one that's built for the browser. At least Sencha/Ionic et al is
targeted for phonegap apps...

~~~
colinramsay
I think you might need to re-read the link. This is a browser UI and
infrastructure (powered by Chromium) written in JS. It's not an app which runs
inside a browser, therefore I'm not sure the comparison is useful.

------
politician
Absolutely love this! Great job, but I'm kind of annoyed that writing breach
modules to improve my web experience threatens to derail _my_ side projects.

PS- Spell check doesn't work... Module?

~~~
spolu
Can't wait to see what you come up with! Spell Check would require adding an
API to the ExoBrowser... but doable as a module then yes!

------
cordite
One thing that hit me was typing a URL wrong provided no feedback to me that
my input might be wrong (no dns records found, or server not on https, but
happens to be on http)

~~~
spolu
This is a cruelly missing feature indeed!

------
waitingkuo
Awesome! I've just posted this comment in Breach browser!! I hope that I can
open a atom editor directly by some short cut (e.g. cmd + m)!

------
mateuszf
This looks like a perfect core to build a real (no problem with shortcuts like
in chrome) minimal browser with vim shortcuts. Sweet!

------
magnusgraviti
Like the design and idea. It is not usable at the moment but I'd like the
project to get stable and ready for day-to-day usage.

------
izietto
I love the homepage! I like it even if it uses a thin font, which I find less
readable. I hope the product to be neat as the website

------
meshko
I am still waiting for a browser written in PHP.

~~~
milankragujevic
I made a mini web browser in PHP. It's command line usage only and doesn't
have a GUI and can't display images, only text. Also it's really difficult to
click links since you have to type in the link number.

------
TinyTimZamboni
This plus github's Atom editor, and I can spend all day working only on
Node.js with an html UI.

As soon as Node OS is done, I'm set ^.^

~~~
yellowapple
Next step: kernel programming in Javascript.

~~~
mateuszf
Next step: cpus supporting asm.js instruction set directly.

------
cmiller1
Did anyone notice that the font they use in the default URL/tab bar is Gotham,
the font made famous by the Obama campaign?

~~~
ceejayoz
If it is, Hoefler & Co. is going to come after the devs for licensing.

------
syldor
I love the idea of modules, using web tools to hack our own UX should be the
standard in future softwares. Great job !

------
krrishd
I'm on Ubuntu 32-bit, and I'm only getting linked to the 64-bit download. Is
there even a 32-bit version?

~~~
spolu
unfortunately not at the momemt :(

------
joeblau
Is anyone else having the problem where you resize the window on an rMBP and
the whole screen goes blank?

------
logicallee
The only question on everyone's mind: how's its JavaScript support? :) Enough
to self-host?

------
bdcravens
Pretty sure I'll never suggest to a client that I add "breach" to their
software.

------
JED3
While I'm aware of what you're implying by "hackable," that word has horrible
connotations when it comes to browsers. I would never want to describe my
browser as "hackable." If I were you, I'd consider using a different
adjective. Best of luck with the project!

~~~
findjashua
'Customizable' would be a better choice, especially for non-programmers.

------
owaislone
No HiDPI support :( Damn it.

------
epayne
Exciting! Can you detail how it’s significantly different from node-webkit?

~~~
spolu
hey from breach.cc/hack:

The result is an executable exposing a NodeJS REPL with a special API to
control browser windows and frames direclty from Javascript. Some people will
note the resemblance with node-webkit. Well, the building blocks are very
similar but the overall architecture is fundamentally different: here we
expose the Content API into a NodeJS context to have the necesary semantics
and security model to build a browser using only Javascript code. Node-webkit,
on the contrary, exposes nodeJS API within the renderer of a trivial browser
(one window, one webcontents view) to make it super easy to build native apps
using Javascript code.

~~~
epayne
Thank you! If I am understanding correct then the tl;dr is: node-webkit is
made for building native apps using JS. breach is a web browser made for
hacking with JS.

~~~
spolu
Well node-webkit is made for bulding native apps using JS. Breach is made to
build browsers using JS (very different security requirements between a native
app and a browser and who tabs interact within it)

~~~
jarpineh
Since everything in the browser is replaceable and implementable with
JS/HTML/CSS then isn't Breach a layer above node-webkit? That is, everything
can be changed, so you can write a Breach based app that has no regular
browser component in it. I am trying to get a feel if Breach is perhaps more
accessible way to do native app dev than node-webkit, which seems to require a
lot of boilerplate that is necessary for basic apps.

I am a bit confused how Light Table and Atom can implement tabs if node-webkit
is only one tab.

~~~
julien_c
"Tabs" are probably in the same Webview (not actual "browser tabs").

------
knodi
O no, not more javascript. I need less javascript in my life not more.

------
spacefight
Download link via bit.ly redirect? Seriously?

------
dimillian
If anyone wondering, work on 10.10 DP3

------
AdrianRossouw
my main concern is whether this could be used as a more flexible/stable
replacement for phantomjs

------
Kiro
What CSS rendering engine is used?

------
gcb0
so its like most custom ui android browsers?

------
apolymath
but not for windows.... fml.

------
portmanteaufu
Neat project, but the marketing's a little disingenuous. It's not "entirely
written in Javascript", it's a Javascript layer on top of Chromium, an
enormous codebase written in C++.

~~~
timdorr
It should be "Show HN: Breach – A new browser _UI_ written in JavaScript"

~~~
dang
We changed it to that. Thanks for a perfect (because minimal and neutral) HN
title edit.

~~~
spolu
The post had a couple title edits which is fine but the last edit is really
diminishing the impact of the whole project: "Show HN: Breach – A new browser
UI written in JavaScript"

I appreciate that Breach is not _entirely_ written in JS, but it's as much a
browser as Opera is and qualifying it of a "Browser UI" does not convey a
realistic image of the project.

Maybe we could edit the title again to something like: Show HN: Breach - A new
modular Browser built on top of Chromium/NodeJS

~~~
dang
Ok, sure. We've changed it to (approximately) that.

~~~
spolu
thanks!

------
serge2k
Javascript except for the millions of lines of C++ code that make up the
actual browser (chromium embedded using the content api).

Cool hack though.

