Hacker News new | past | comments | ask | show | jobs | submit login
Experimental web browser optimized for rabbit-holing (szymonkaliski.com)
613 points by cernocky 42 days ago | hide | past | favorite | 118 comments



Slightly unrelated:

> As an aside, I also use this technique for navigating code with Vim, where a single shortcut goes to a definition of a function in a new pane

I was intrigued by this, and searched the author's github for their .vim. This is how they do that:

nnoremap gF <c-w>vgF

https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...

and

nnoremap <silent>gD :call CocActionAsync('jumpDefinition', 'vsplit')<cr>

https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...

---

Edit: This is what I ended up with, lua, nvim: `buf_set_keymap('n', 'gds', '<c-w>v<cmd>lua vim.lsp.buf.definition()<CR>', opts)`

I made it a different map from the normal gd, so that I can choose to open in a new split or just jump to the one in my current window - I don't want a new split if e.g. a variable is define just 20 lines above my current one.


Haystack[0] is pretty cool for something like this actually.

[0] https://haystackeditor.com/


Thanks, I hadn't seen this.


For any vim feature we can think of, somebody has implemented it. So I say this knowing that I’ve almost certainly just not seen it yet. But, it would be sort of nice if there was a key combo that basically said “just bring me to this definition if moving there would still leave some of the currently visible text on my screen (so I’m not jumping out of my current context and getting lost), but if it is any further of a jump, open a split”


this is great, added this to my nvim config. But changed it to 'gv' as 'gds' added a little bit of lag when I wanted to use 'gd'.


Good one. In general a tricky thing to be aware of with vim: when I add a new variant that uses more characters, the ones with less characters will get a delay.

I presume one can tweak that delay even. But personally, I'll make all the shortcuts "symmetric", eventually. Indeed "gs" or "gv". In other cases, It'd become "gds", "gdd" or such. But "eventually", I try to change stuff more permanently once I see how I actually use it over a few days or weeks.


note the correct command is vim.api.nvim_buf_set_keymap or just vim.keymap.set


This is pretty neat!

And I strongly suggest that you contact Kay Xu <Kai.Xu@nottingham.ac.uk>, who is doing research on sensemaking [1] [2] and berrypicking [3], I think he is currently working on newer and better version of his approach with browser extensions (as opposed to a separate renderer), and you both would benefit from collaboration.

[1] https://vis4sense.github.io/sensemap/paper.pdf

[2] https://vis4sense.github.io/sensemap/

[3] https://web.archive.org/web/20080112091521/http://www.gseis....


No FF support :(

Also [The old version of SenseMap is no longer being maintained. A new version called HistoryMap is currently under development ] > site is dead .


As I mentioned, it is a research project, so I would not expect production ready code or multi-browser support. They are indeed not supporting the old version, as they are rewriting almost everything from scratch.

Last time I had contact with them, they were exploring using Plasmo [1] as building block for the extension, instead of doing everything vanilla as they did in the 1st version, which would offer cross-browser support out of the box.

But meanwhile, you can check the code [2] and add the FF manifest yourself to try it out.

[1] https://github.com/PlasmoHQ/plasmo

[2] https://github.com/Vis4Sense/HistoryMap


Thanks . The the site [1] dead linked in [2]

[1] http://sensemap.io/


FWIW, sites [1] and [2] work for me.


I made something like this over 20 years ago.

It also had full text searching of the contents of the page and also worked as a browser history.

I used it for a few years.

The real solution I saw in a roomful of butcher paper tucked in cabinets in the basement of a really dedicated guy who had a learning disability. He went through textbooks and had to come up with his own special syntax in order to comprehend the text by rearranging the contents on these giant rolls effectively making a hybrid between a mind map and a zui.

He had a "linking" idea that involved an indexing system where you'd get another roll of paper out of the cabinet earmarked with labels and then unrolled it to the "linked" region. Then he'd fold it back on a table and have them both side by side.

The general applicability was immediately apparent. I worked on it as a new way to browse the web over 10 years ago for a few months but then didn't stick with it.

I keep telling myself I'll work more on it but you know, anxiety and depression sucks. You can even use llms to do smart ontological labeling now.

The pieces are right fucking there. All I need to do is pick them up.


You can also pin papers, photos, notes, etc to the wall or a giant pinboard, and then use red string and thumb tacks to link related items, etc.


Doesn't really work. The fidelity of the links is low. It needs to have an expressed ontology. It's a geometric and spacial language as bucky fuller wrote about. It's an extension of the written word that incorporates a semantic geometry.

This only sounds wacky because it's new. Let's put it this way. Our rules for the written word doesn't really go high up in the abstraction. In English we have a character set that serves as phonetic and a bit of a fuzzy etymology history and that's it.

We don't arrange the words in space differently depending on the expressed intent. There's no squares, circles or triangles that the words enfold upon. Lines or arrows are not part of the writing system.

But if you look at how students take notes, you'll invariably find many invent their own extensions to accommodate for this oversight. Shapes, colors, squiggles, and other affectations carry semantic weight. It's been invented and reinvented millions of times.

I've asked people whenever I see it in the past 10 years or so and almost nobody realizes they invented their own system. They are just doing "what makes sense to them". And there's lots of commonalities. People reinvent the same things.

Semiotics is a natural tool of expression, comprehension and understanding. The wall between it and the written word is an artificial construct that people naturally ignore in their personal writings. I hear people think others won't be able to understand their notes - it's just for them. You'd be surprised how universal these linguistic extensions actually are.

This interaction is an important tool in expressing the natures of corpi transclusions on the project we call the web. We've got the pixels to do it now. Let's go!

Anyways. I'm sure this reads like I'm a nutjob. And yes, I've talked to Ted Nelson about this. He doesn't seem to get it. My email is in my profile if you're interested.

The most important aspect to succeeding here is keeping it open, collaborative and free. The organizational structure has to mirror the desired organization of the output as Conway put it about 60 years ago.


I am intrigued. Please can you link to more about your project and its inspiration. Or write on it, do you have a blog or social to follow ?

Sounds great, please so more - and tell others.


I've gotten quite a bit of positive feedback when I describe it. My previous solution was some heuristic system based on regexs with weights as super-parameters and the Wikipedia corpus. It was not amazing.

I think some kind of automated OWL system using all the modern magic that huggingface has to offer will produce better than trash results and is the way to go.

We're really just tokenizing and lexing here and it's just a matter of putting in the hours and getting people on board.

Some of my general problem is I don't care about money. I'm in this field to build a better future, not so I could personally live extravagantly. Benevolence, however, is not how society is organized.


Could you explain the linking system in another way? it’s not quite clicking for me.

What does it mean to unroll the earmarked “indexing” roll to the linked region?


That sounds like Zettelkasten + Transclusion.


"I shared a preview on Twitter, to a surprisingly overwhelming response, but I got distracted with other things and never got back to the project".

Creates rabbit-holing browser, gets distracted....

All jokes aside, the description of the Vim functionality reminds me of the Whisper browser for Squeak, that had something of a depth-oriented SmalltalkBrowser to avoid the inevitable proliferation of windows in the normal course of things. Interesting that enough functionality for reorienting source browsing like that in Vim is about two lines of config. But, of course, the Whisper browser had stacking of things as well as sideways browsing, and new UI.


This is sweet! When we made Chrome some of us (OK only me) were enamoured with an IE shell browser named iRider - it had tree style tabs and pinning, so was useful in very similar ways

IIRC one of the things they did well that could work here is batch control of tabs by dragging across them - you could click on a close or pin button, then drag vertically across other tabs to apply that action - it made handling the glut ever-spawning tabs very easy


I’ll use this comment to congratulate you and thank you and your team for your amazing work on chrome.

- a happy chrome user


I would like to add this horizontal historying to our "virtualized Chrome" (chrome as a client server app) BrowserBox, and its SaaS, CloudTabs. https://browse.cloudtabs.net


Looks like the stuff of dreams and nightmares for a ADHD user.

Am I the only one who regularly ends up a browsing session with 300 tabs? This feels like a feature I'd overuse, and which would only make my life much worse.


I recently discovered the working memory component of ADHD and it became somewhat of a transformative moment for me. It helped me realize that clearing my plate was the most important activity I could do on any given day, because it created the space I needed to focus, and reduced the strain I felt in a day. It has taken time but I've now found when I look at tabs (or screenshots or whatever clutter) and think not about what I'll save or lose, but about how much more I will do if I don't have the clutter, I start to see it not as something lost but something gained, and it has helped. It doesn't always work, but sometimes it does, and its amazing on those days.


Agreed, but even more so, to the extent that I try to do this "plate-clearing" early and often, in between tasks over the course of a single day, and somewhat obsessively close both browser tabs and desktop windows.

This doesn't mean that more comprehensive browser (and more general desktop) session management tools couldn't be useful!

As it stands, for long-running tasks that necessarily need to be interrupted, I tend to use task-specific VMs, which is wasteful in cases where no background processing is involved.

For example, it'd be useful to extend browsers' (and certain other applications, including macOS applications by UI convention) save/restore state on application quit/restart features to allow multiple state instances to be saved/restored (while still allowing usefully global state to be shared, unlike, e.g., Firefox profiles).

Now imagine the same thing, but across applications and integrated with the desktop environment as, e.g., named, persistent virtual desktop sets.


I've been dreaming of this exact idea for a decade. Task specific workspaces.


For me tab accumulation is often related to fear of loss, sort of a digital hoarding of things that I might need someday. So it's possible I'd be better here knowing that my history was always there.

I think it would be even more helpful if I could easily tag things along the way, and then quickly search both my tags and content of seen pages. Confidence I could find something again would make it easier for me to close tabs.

For what it's worth, as a fellow ADHD person, these days I regularly go on tab-closing sweeps (generally at some related event, like starting or stopping work for the day or when starting or finishing a task). I try to have one window per ongoing task, and then find places for the other tabs. E.g., if a task represents or is related to a possible to-do, I'll put in in my kanban board. If it's a to-read, it goes to instapaper. If I just thought it was interesting and might want it again, I'll put a line in my LogSeq journal with a short description. The general theory being that if I'm not just hoarding, the I'm saving a tab for a reason, so I should articulate the reason and put the tab somewhere I'll find it again when the the time is right.


For ADHD you'd love offpunk. It's an offline Gemini, Gopher and minimal web browser.

You add bookmarks/RSS feeds or whatever, run

       offpunk --sync
and then

       offpunk
Finally you type down

       tour  (or t) 
at the prompt and then keep pressing (t) until you finish all the blogs/news sites and such. The site is read with the space bar. If you want to read again, type down 'less', and you can enter the number of the links to access them. To go back, press 'b'.

Everything is kept offline for further usage.

URL https://sr.ht/~lioploum/offpunk/


I had exactly the same. I need something to keep me on track. Or, at least something that signals me "headsup! you are rabbit-holing" rather than encouraging me to rabbit-hole.

OTOH, being able to quickly go back to the junction where I left the path I was supposed to follow, is invaluable too.

In vim, I also never got my head around the undo-branching feature. I understand it, but fail to use it in practice. I guess my ADHD brain can handle linear history better than a branching history.


Offload tabs to OneTab when the amount is overwhelming.


I regularly have to declare tab bankruptcy. By which I mean I bookmark the several hundred still-open tabs in a folder named after the date of said declaration.

…you know, in case I, uh, want to continue to work through them some other day... :|


Isn’t that the history feature ? :)


Well chrome only stores history for 90 days. And firefox has some mystery algorithm if you don't override it. But even if that gets fixed, raw history is a horrible mess compared to saving just the tabs that stayed open.

Also a bookmark folder is itself inferior to actually saving tabs with the per-tab history intact.


I was thinking, this would be really useful for doing research. But you remind me, I also have 400+ tabs open in my browser right now without any chance of going down, and how this going to spiral out of control.


I prune mercilessly. I currently use chrome grouping as the main way to reduce tab spam


adhd, end up in a lot of rabit holes. Had 1500 tabs once. (It's possible to have these many tabs open)


I worked on Firefox to make sure that it kept working (and in particular starting up and closing) when you reached several thousand tabs :)

Might not have been a good idea in the end :)


4000+ here, I don't even bother pruning them anymore, I just switch browser profiles. I've got about 4 4000+ profiles.

Excessive? Yep.



Interesting! Some overlap with these Firefox add-ons:

- Tree Style Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta... (more simplistic, no session saving functionality)

- Tree Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-tabs (more complex, can also save sessions, but incompatible with some other add-ons and not evaluated for security by Mozilla)

Neither rearrange tabs in the window, just offer an alternate tree listing of open tabs.


Sideberry is a more advanced version of those.


Firefox did have an addon to show tabs in a grid in the same window, but it died along with XUL.


Wish there was also something with Miller columns.


i’ve only ever seen foxytab rearrange tabs in the window


Everybody is talking about the existential risk posed by AI but this guys release this tool in the wild without any rail guards... concerning, really.

A bit more seriously, it can be really useful to have a graph of ArXiv tabs instead of a linear range of tabs, this can be very handy when doing a dive in scientific literature.


How does this related to "AI"?


The joke is that this tool is compelling enough that people might die from it.


AHAHAHAHAHAH oh man


Graph approach can be extended to entire web browsing. From page A, you open page B, but you also open page B, from page C. Tree-style browsing will result in opening/seeing page B twice and also not (easily) seeing that came to B from both A and C.


yes bring us back proper "hypertext".

A browser should behave just like browsing documents, we can go back and forth, each "view" should be cachable and savable, not the 20MB main.min.js SPA crap!


Best line ever from a post about someone who built a browser optimized for rabbit-holing:

   I shared a preview on Twitter ↗, to a surprisingly overwhelming response, but I got distracted with other things and never got back to the project.


>Yes, it's sometimes good to know how you ended up somewhere, but I think what's most valuable about "research" is the synthesis part — grabbing parts of larger wholes, rearranging, recombining, thinking with the material. A small step in this direction could be persisting scroll position or maybe selection, and making the history editable — allowing users to remove dead ends, add notes, etc.

I need to know how this guy will escape the curse of reimplementing a less-VR version of XanaduSpace over HTTPS. Will search his RSS.


I specifically just switched back from chrome to Firefox after about 10 years, because there were still no native hierarchical tab solutions in chrome.

FF + sideberry for every day use and rabbit holing.


I've been using Gingko Writer [1] since it was "gingkoapp" -- it's similar in how information is structured (hierarchical vs linear), but focused on creating, not consuming. The tool permits a rather free-flow approach to compiling things in various scopes [2], and can render a final linear work product from it.

OP's browser and gingko mashed up together would be the perfect thing -- find/explore/learn, annotate, synthesize, organize, and combine into a finished thing, be it a reference or a proof.

1: https://gingkowriter.com/

2: https://vimeo.com/639232763


The parallel browsing has strong resemblance to Xanadu from Ted Nelson's, which was a proposed web protocol and browser.

But I am vague about Xanadu's browser as I only seen it as a brief flash in Werner Herzog's Lo and Behold, Reveries of the Connected World.


the last person i expected to be mentioned in this thread is Werner Herzog


I really would like to implement that multiple panes feature into Emacs, that "column-mode" could be interesting for code browsing.

And a column mode for Tree Style Tabs in Firefox (or Orion/Servo/etc)


This is also how search in IDEs should work.

Each new search term should open a new results panel, with space for the source code on top, and a list of hits at the bottom. Results panels are in an infinite horizontal row.


This brings back memories. Szymon is/was also active in minimal/experimental music scene [0] back in the days. I think in my hometown (Poznan, Poland) back those 10-15 years ago, there was some self-made small art-hacker community. Great to see his work again!

[0]: https://flic.kr/p/9jz4Gh


As a "Watership Down" fan, if I were ever go down the rabbit-holing rabbit hole, I'd be tempted to name the resulting tool "flayrah" (or maybe "Rabscuttle").

But in the meantime (my current rabbit holing technology being a text file in a side window), I'm more than happy to try out everyone else's!


I had this exact idea and I've described it to colleagues before. Fun to see parallel evolution. It feels like a simple concept that should already exist, so I'm surprised it's not more commonly attempted. But you're missing a few of the features that I came up with that build on the initial idea. I haven't gotten around to implementing it yet, but it's on my todo list for this year/next year.

I was planning to build it with ultralig.ht, but I'm not 100% sure if it's ready for it. But since most of the content I'm interested in for research is textual/reader mode, and the rest can be viewed with yt-dlp, I think it can render them and it seems the lightest weight. Otherwise it's webkit or servo that I could think of for this.

Good to know there's interest in this.


would be curious to know what other features you thought about


This is great, I appreciate the ability to save and restore the "trails".

Similarly to OP and many other like-minded commenters, I've also built an interface for rabbit-holing [0]. This is a 10 year old, purely JS+CSS solution you can open in your browser. It's limited to Wikipedia and its UI seems broken after Wikipedia's style updates, but nevertheless wanted to share the source code [1] for anyone who's interested

[0] https://amadeusw.com/WikiDive/ [1] https://github.com/AmadeusW/WikiDive


We developed a solution in the same space called Skipper (https://chromewebstore.google.com/detail/skipper-fewer-tabs-...)

Two features to help with rabbit holing, both automatic:

1. Close tabs that are not used for the ongoing topic

2. Group the browsing history by topic so that users can go back and review their research journey

Here's the website: https://www.skipper.co/


I raised the feature of side by side panes as something desirable in Firefox and got pushback in replies[0] proclaiming people couldn't imagine why anyone would want it / that it was solely a domain of the DE. Happy to see that someone figured out that it did make sense.

[0]: https://news.ycombinator.com/context?id=40786937


Looks similar to TST extension. Actually not sure what the difference is. Even the outline is available in TST. Based on first screenshot more design-y?


Cool, thanks for sharing.

Been using the grouping and pinning feature in chrome for a bit then saving the groups i care about to try to emulate this behavior, but still a long way off from ideal; the one dimension of tabs at the top level means the UI gets crowded quickly.

Had the tree-style tabs extension for a bit but didn't love its interface and found it to be more trouble than it was worth.


While writing my thesis, I made a similar thing as a chrome extension.

It kept track of all tab opens & showed it in a node structure.

Screenshot: https://github.com/Taborniki/node-search/blob/pre-alfa/demo....


Is there a way to get this running without having to install the tool chain to build this? Is this an Electron app? Is Electron Fiddle [1] what I am looking for? Can I have Electron Fiddle in the browser?

[1] https://www.electronjs.org/fiddle


Lately, I've been thinking about how you might bring notebooks to web browsing...something that would make it easier for an LLM to interact with your browsing and thought process. This was timely because it got me thinking more about how what I'm thinking of relates to rabbit-holing.


Orion - Safari with support for FF/Chrome extensions (ALSO on iOS. For free), and has tree-style tabs if you enable it.

My browsing has become so much more enjoyable. Also, since it’s almost the same as Safari, great resource management, great gestures, great performance. Definitely recommended


Similarly Sidebery has been immensely useful for my browsing / work flows.


I wonder if someone will implement this in Nyxt... it seems appropriate for such a browser.


https://nyxt.atlas.engineer/article/global-history-tree.org

Already done

As Nyxt is for browsers what Emacs is for editors, you can put crazy stuff on it with very little.


I guess it does count... I knew about global-history-tree, but maybe the visualisation in the blog fooled me into thinking this was somehow a bit /different/. Maybe Nyxt could use some slick demo videos :)


This is brilliant. I currently do this in org mode, pasting bookmarks in long indented trees of research.

This is that but next level, many thanks for sharing your work.

Following rabbit holes, if the trail is preserved, turns my ADHD from inconvenient distraction into a research superpower.


You can do this in a generalized fashion using a paper WM and hitting shift+click on links.


Needs a 2021 tag.


There was also this approach many years ago which i absolutely adored: https://news.ycombinator.com/item?id=9724414


Unfortunately, your link leads to nowhere.


This is exactly how the old OPML browsers used to work back in the web 2.0 era. Always thought it was a neat interface, although I'd keep content in one pane, scrollable back to previous windows.


This is a little like I a features I wish macOS spaces or Vision Pro screen arrangements provided.

To be able to group, name, save, browse and retrieve multi-space/screen contexts.

I would end up with some projects I open and close frequently. And a growing list of started projects, which would be much more likely to continue for being so easy to resume.

Not being able to put away and resume contexts (of any kind) is a significant cognitive and productivity impediment.

A separate do-undo chain or tree for context edits, in addition to content, would be nice too. I.e. see a context history of what windows I closed, to quickly reopen something.

Seeing a lot of this in a browser is inspiring.


We can definitely still innovate in the browser space - I quite like the history concept.

Firefox‘s history could definitely use a remake, I find it pretty close to useless currently.


This is the first time I've seen actual utility in being able to stuff a "web browser" in a pane of a GUI program developed in the language of your choice. The ability to take the metadata of browsing, the links, and especially the knowledge of the connections between clicked URLs, as the basis of a knowledge graph, is the closest I've seen someone come to the Memex[1] in a long time.

Add the ability to add notation, ratings, etc... to that knowledge in a structure, and I think you've got a winner.

Oh.. and store EVERYTHING required to show the page, or save a view of it that's independent of the live internet... that's the other key part of the Memex.

[1] https://www.theatlantic.com/magazine/archive/1945/07/as-we-m...


Nyxt is that. A WebkitGTK4 window (commonly used by browsers like Surf, Luakit...) with a Common Lisp UI. The Common Lisp interface gives you suporpowers such as creating graphs on bookmarks to extract closely related information.


I love this idea, I've been using Arc Browser for a while now and it looks like this would be a very nice addition to that browser.


Love this idea! A browser tailored for wiki-style exploration would be amazing, especially for diving deep into interconnected topics.


Chrome apparently also keeps track of "trails" but i did not find the implementation particularly useful unfortunately


I can't seem to get it to run, electron-webpack not found after npm install. 404 for electron github?


On Firefox just use TreeStyleTabs and its companion addons, such as Copy This Tree To Clipboard


I would LOVE this on mobile! It's so hard to keep track of mobile tabs. Android would be nice!


> For example, a good window manager could replace Cartographist almost completely

I can see a neat way of doing this with Niri[0] and its recent IPC layout interface, combined with an extension like URL in Title[1] to expose the full window URL to the wm. Someone may need to hold my beer

[0]: https://github.com/YaLTeR/niri [1]: https://chromewebstore.google.com/detail/url-in-title/ignpac...


How does it compare to horse browser?


I was going to suggest this. https://browser.horse is more feature-complete for daily usage.


Yes, but it costs $100 (currently on discount, original $200).


True, and it is perpetually "discounted". A free trial would be neat.


Isn't Chrome Journeys similiar feature that tracks which site you opened from which


I've been wanting something like this for a while now. Very cool idea!


Amazing!!!

I want this in my regular browser (you ear me Mozilla && Servo devs?!)


I followed the installation instructions and I just get errors.


Curious why it cannot be an extension to an existing browser.

PS: awesome idea!


I was just thinking about something like this yesterday XD


I love this, I think there is the same problem with IDEs


I often wish that slack had this same feature


I use Firefox with Tree Tabs extension for that.


What's with the TST comments in this thread, this thing has more in common with PaperWM than with TST. Maybe you people should read.


Based on comments here either people don't know TST or don't actually care about this functionality beyond seeing it as interesting.


Reminds of Hofstadter's concept of the "Parallel Terraced Scan". Kind of a mix between breadth-first and depth-first search or unsupervised learning.

Nice write-up here: https://www.menimagerie.com/manuscripts/2018/6/9/v-douglas-h...


The font on that page is lovely.


(2021)


Need to check it.


Looks intriguing! The idea of optimizing browsing for deep dives into content could really change how people consume information online. It’s interesting to think about how this could affect productivity and the way we explore topics. Features that encourage wandering through links could lead to some unexpected discoveries. Keeping track of internet usage is a must, especially if you want to stay connected; browsing your verizon wireless email https://verizon-wireless.pissedconsumer.com/customer-service... can help with that. Moreover, this could lead to a new way of thinking about how we interact with the web.


i need this as a chrome plugin asap :)

It looks really cool and clean!


Love this idea.


nice design! i like the idea


need this for LLM chatbots


I mean this is amazing if panes on the left are what the back button history is!




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

Search: