Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Doogie – A Chromium-Based Browser with Tree-Style Pages (cretz.github.io)
264 points by kodablah on Sept 18, 2017 | hide | past | favorite | 78 comments


This is a great use of Chromium!

Storytime! When we started designing Chrome back in 2006, and despite having spent the past year working on Google's Firefox team, my favorite browser was iRider, which was an IE shell with tree-style-tabs. It was too power-user for what we were going for, but some of the concepts (pinning) live on in Chrome today.


> It was too power-user for what we were going for

Chrome might as well support the Sidebar API to make this possible like Firefox will do with Tree-Tab-Style Add-on iirc. I read a bug report once at the Chromium bug tracker saying roughly "Sidebar API wont be implemented because UI needs to stay simple".


Chrome had side tabs for years. Never overtly, but you could enable them manually. But they took them out because someone 'didn't like how they looked' and despite thousands of people starring the bug and hundreds of comments, they refused to even tolerate their existence as a hidden feature. They're very serious about making sure you use their software only the way they want.


Vivaldi has sidebar tabs, chrome under the hood.


I hate the "UI must be simple" aspect of chrome so much. So many features don't get implemented because of it.


Modern product managers and data science folks have a very inflated view of their ability to anticipate their user's desires, IMO. "Simplicity" has killed so much useful-to-the-user functionality in the past decade, like star ratings (fortunately iTunes still has them, at least), intuitive queues (remember the old Netflix DVD queue?), linear feeds of chronological data (hi Facebook and Twitter)...


Yeah, too bad some losers at Google killed off vertical side tabs which were working perfectly fine and were even a 'hidden feature' that had to be enabled manually... because they 'didn't like how it looked.' Of course they provided no alternative other than having a ton of nearly useless tiny little tabs which apparently looks 'better' to someone somewhere. Yes, I am bitter, why do you ask?


Yep, that was me.

The reasoning wasn't that we didn't like it and wanted to kill hidden features (as above, I loved it), but more that all things, even small or hidden ones, come with small and hidden cost, and cost is the end of large projects. It sounds a bit daft to many, but just having the code in the tree is a burden - tests run, translations need to be updated, and minor dependencies all over the place increase development costs persistently. For example, consider the staff who added the "audio indicator in tabs" functionality and how the presence of a separate tab system in the tree might cause them extra work, or how their work may inadvertently cause critical bugs in sidetabs that don't have an owner to fix it or care for it.

To keep Chrome nimble we attempt to cut and trim as much as we can, knowing that that annoys some. We don't always get this right, but it's better to aspire to do fewer things well than to be generally OK with crufty bits here and there.

I realize this explanation probably won't decrease the sadness, and you've probably heard something like it many times in the bug tracker, but if not, I hope it explains things a little.


> To keep Chrome nimble we attempt to cut and trim as much as we can

    $ du -sh /Applications/Google\ Chrome.app/
    346M	/Applications/Google Chrome.app/

    $ du -sh /Applications/Firefox.app
    147M	/Applications/Firefox.app/


To be fair: "trimming as much as we can" doesn't mean you have to be the browser with the smallest file size on the market...


I'll keep my comments civil, but I really cannot say how absolutely evil, wrong, and arrogant that decision and attitude are, and how much I hate and despise Chrome on account of this and similar intentional design crippling and abuse.

(I've filed a number of bugs on several of them, based on the experience, I simply won't bother in future. It's absolutely clear that Google's goal is to driver users such as myself far, far away. Why should I fight that?)

I'll point though to the tyranny of the minimum viable user, and a rather massive Achilles' Heel Google have been manifesting of late.

https://www.reddit.com/r/dredmorbius/comments/69wk8y/the_tyr...


I wish you guys would build a multiple rows of tabs UI, like Opera for desktop had. It was self-balancing (since you would eventually run out of browsing space), but in a better way than having everything just made tiny per column.

The one UX challenge you would need to solve though, that Opera did not, is how much horizontal space to use per tab, after it gets cramped. No-one would be happy with any particular default...


Some people have widescreen monitors, which makes side tabs the only sensible choice, really.


Bubbles sound like a really great feature! I'll be waiting on a Mac version too so maybe this already exists - but it'd be awesome to be able to pin domains to bubbles so they always open in that bubble. Then Facebook can have their own bubble and can't see anything even if their scripts/buttons get through ublock.


The Firefox extension "Firefox Multi-Account Containers" by Mozilla has the exact features you mention. I've been using it ever since it was first released as a Firefox Test Pilot add-on and it's great! So awesome to be able to keep things segregated. Combined with the Tree Style Tabs and Tab Groups extensions, it's killer.

That said, Firefox 57 will kill the Tree Style Tabs and Tab Groups extensions, so hoping some browser like Doogie picks up those features and incorporates them into the browser core or at least as extensions.

[1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...


Tree Style Tab is being actively ported to a WebExtension:

https://github.com/piroor/treestyletab/issues?q=is%3Aissue+i...

For a general progress report:

https://github.com/piroor/treestyletab/issues/1224#issuecomm...


I remember a few years ago when Chrome actually had a hidden feature flag that let you enable side tabs, not fully tree style, but it was better than nothing. Sadly they removed it.


Hierarchical web browsing navigation is something that's been around in NetSurf for a while, more browsers need it:

http://www.netsurf-browser.org/documentation/guide.html#Hist...

https://pbs.twimg.com/media/DKCzWJrUQAAaMK3.jpg:large


I switched to Firefox (dev edition) a month or so ago almost completely becuase the TreeStyleTabs extension is better than anything for chrome.

I LOVE having nested tabs. It totally prevents me from getting lost when I'm links deep in technical documentation.


it will change a bit though. A rewrite for firefox' new plugin architecture is on the way


Will the rewrite reduce it to the utterly-useless form of a button that drops down a list of open pages? I've seen that sort of thing attempted a few times by browsers that are idiots about their UI and don't let extensions change it and it's really garbage. Firefox going that route just makes me profoundly sad.


Before being sad, take a look at already extant add-ons for vertical tabs, which work almost exactly as before, with the exception of tree style nesting. Even that will come soon, as the author of Tree-style tabs is working on a port to WebExt.


looks like he's able to port everything important: https://github.com/piroor/treestyletab/issues/1224#issuecomm...

just hiding the normal tab-bar might require a line of userchrome.css


I wrote a couple of styles to hide the tab bar and the sidebar header:

- Tab bar: https://github.com/Timvde/UserChrome-Tweaks/pull/31

- Sidebar header: https://github.com/Timvde/UserChrome-Tweaks/pull/32


I even managed to move the address bar in to the title bar, but unrelated to my CSS, the browser toolbox now refuses to open...


don't ask me how, but this works (at least on windows):

https://i.imgur.com/dtan6HH.png

https://pastebin.com/AcZEgqaP


yay, no side-bar header sounds great :) thank you!


I am using vertical tabs in nightly (which uses the new plugin architecture). I don't use tree style tabs but I would be surprised if they are not supported.


The author of TST is working on a port :)


This looks very promising, I'll keep an eye out for macos version, and in the mean time might play around in my VMs. In any case, thanks and godspeed to you.

Currently juggling between FF Nightly (for speed and memory usage) but lacking critical add-ons (LastPass), and Chrome(/ium). I tried Vivaldi for a bit but was really disappointed with the UX after a while. I miss the golden era of Opera.


Whats wrong with Vivaldi UX????

I really like their power-user approach.


I love this way of managing tabs and windows! Today I approximate this by using Chrome and the under-appreciated Tabs Outliner[1] side-by-side.

[1] https://chrome.google.com/webstore/detail/tabs-outliner/eggk...


most functions aren't free though


I wish someone would create an Emacs buffer style browser where we could easily switch between tabs similar to how Emacs lets you switch buffers. I know you can do this in Emacs, but I just think for all the work people do to get tabs working nicely, maybe the way Emacs has done it actually works pretty well without overwhelming the screen with so much information all the time.

That tree on the left would be better in some kind fuzzy search screen that appears on a key-binding (e.g. like some setups in Emacs) and otherwise be hidden so the full screen can be used for the page. Either as a panel like it is now or a modal/window.


It's not what you're looking for, but it might be interesting to note that there's a pretty capable window manager (hybrid tiling/floating) that runs in Emacs, written in Emacs Lisp, and indeed lets you jump between windows using your buffer switcher.

https://github.com/ch11ng/exwm

In the tiling mode, Emacs buffers and X11 windows map 1:1. It's like having arbitrary X programs inside Emacs.


> some kind fuzzy search screen that appears on a key-binding

Firefox kind of does that. If you type Gmail and you have a Gmail tab open you will see a "switch to tab" entry. It support fuzzy search so it's handy.


This is what Conkeror was meant to be.

Unfortunately, Conkeror is reliant on XULRunner, which is deprecated if not outright EOL now (especially since XUL itself is deprecated / nearing EOL).


What page uses the full horizontal width of your browser?


Conkeror, perhaps?


I love everything about this except that it's not done right now. This is excellent.


My thoughts exactly. I'm having a hard time getting Qt 5.9 to install thoroughly on CentOS 7, but if this works it will be worth it.


How so ? Don't the binary packages work ? (http://download.qt.io/official_releases/qt/5.9/5.9.1/)


Does anyone here make money through these browsers? Either by selling ads or by some other means. I have a few ideas in this space, but I am not sure about monetization strategies.


Completely unrelated, but I just had to comment that I love the style of this webpage. Those double-line borders take me back to my days of writing toy programs in Clipper.


Yes! It reminds me of some sites listed on http://brutalistwebsites.com (discussion: https://news.ycombinator.com/item?id=11517491)


It's funny how the feature description is exactly my firefox setup. Tree style tab, mouse gestures to close and switch tabs, ability to suspend tabs…


Cool idea. Can't run on the latest Ubuntu though, it seems the latest Qt in the Ubuntu repos is 5.7?

    $ ./doogie 
    ./doogie: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.9' not found (required by ./doogie)
Or is it supposed to use the Qt shared objects in the current directory? It seems to find the system ones first.


Eek, yeah, I didn't have a global Qt install when I was testing. I do bundle the Qt libs along side. Maybe change LD_LIBRARY_PATH to local dir? I have filed an issue: https://github.com/cretz/doogie/issues/45. That's why it's an alpha release :-)


Doesn't seem to work - not sure why.

Perhaps you can fix by calling dlopen on the shared objects explicitly rather than linking them and relying on the linker to find the libraries at runtime. I'm not sure, not totally familiar with C linking.


I have opened a new release at https://github.com/cretz/doogie/releases/tag/v0.6.1. Please test there, and comment on https://github.com/cretz/doogie/issues/45 if it's still not working.


You should look into distributing an AppImage. Its author has a very nice script that you can use to ship Qt apps that works on all linux distros: https://github.com/probonopd/linuxdeployqt

Also, is there a particular technical reason you went with CEF directly instead of QtWebEngine or QtWebkit ? It would be interesting to know about it.


I'll look into linuxdeployqt. I am probably just going to statically link Qt. I am not using anything security conscious with Qt and I don't want versions changing underneath, so a system-level Qt makes little sense I think.

QtWebKit was deprecated then just recently undeprecated IIRC (with a non-Qt maintainer). As for the QWebEngine stuff, it was a bit premature when I was looking and didn't offer everything I needed at a low level. It's quite possible it does now (and would make my work easier!), but I have not looked.


Great work!

I never understood why this isn't the default.

Hopefully this will finally gain traction in mainline Chrome. But I'm not holding my breath...


Never. Chrome had side tabs, but some being wiser than all others determined unreadable microtabs to be the appropriate punishment for the sin of opening too many (good thing there isn't a big movement towards web-based apps!). They were removed, multiple bugs opened begging for them to brought back, merged together, starred by thousands of fools (like myself), but the word came down. Someone didn't like how it looked. And that was that.


So can this be implemented as a chrome extension? instead of a stand alone browser ?



This is sick. Well done. My brother who is autistic has an elaborate routine of viewing and ordering web pages. Next time I see him I'll see if he likes this.


Looks great! I'll wait for the OSX version. Also - vim or emacs shortcuts would be appreciated.


Yeah, sorry. I developed this on my Thinkpad and I didn't really want to dev this in a hackintosh VM. My fear is that even if I develop a OSX version, it will become stale because I don't use it regularly. I abstracted all the platform-specific stuff, so it should be really easy for anyone wanting to add OSX support. I'll happily help/guide anyone.


> My fear is that even if I develop a OSX version, it will become stale

Being open source and hosted on Github, I doubt that will be a problem. The Mac community is rather active.

By the way, here's my vote for VIM keybindings!

Do you have a Paypal address that we could donate to?



You will be in good company! The only reason I use FF anymore is Tree Style Tabs. But now that they're transitioning their addon framework, I'm forced to choose between new goodies and critical addons (for me) like TST. Can't wait to try this!


TreeStyleTabs and Vimperator are what keep me in Firefox. Any decent alternative would be amazing.


Yes, this.

Although, for a Vimperator replacement because of the breaking FF/Vimperator upgrades, I've found VimFX to be pretty awesome. I had to write some configuration scripts to get d/D to drop tabs like Vimperator, but other than that it works very well.


I'll take a look at VimFX, thanks. Would you mind sharing your configs?


No OSX support? :( :(


What problem is this solving exactly?


The problem of existing browsers poorly handling usage-cases with hundreds, perhaps thousands of tabs open.


So is it just a new way of organizing tabs? I'm not sure what the issue is with browsers having many tabs open, besides it being difficult to navigate between them (and obviously resource consumption)


Difficult navigation is enough of a problem. Seeing just a single letter of the page title because you have a hundred tabs open makes finding tabs really hard and cumbersome.


> besides it being difficult to navigate between them

That's it. Hierarchical pages makes it really easy to contextually browse or what I call "immutable browsing" which is never just clicking, but always ctrl+clicking links to never change your current page.

Also, the one thing many people don't realize is how easy it should be to close dozens of pages. A simple drag across the close buttons in Doogie (or drag over which ones you want) helps close swaths of pages.


It's solving the problem that Firefox has nuked the tree-style-tabs browser extension in FF57. It also highlights a good reason to write a separate browser as opposed to implementing it as an extension for one of the big player's browsers, because you can guarantee they'll break your extension within 3 years.


Tree Style Tab is being ported to a WebExtension:

https://github.com/piroor/treestyletab/issues/1224#issuecomm...


Will nuke. Firefox is at 55 currently.


It actually seems very useful for people who like to research, and organize their current stream-of-research into tabs.


The analogy of it being an IDE is telling. You can think of some browsers as the equivalent of being a text editor, some as intermediates (Sublime Text), then this as an IDE.

I'm excited for it.


Ho the website made me think it was ascii UI .. too bad. Still great, the page tree is useful right away.


Can't think Doogie without thinking of Lil'Doogie

https://www.youtube.com/watch?v=e7R8umuu7ts




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: