Your tabs don’t think in a straight line. You open a main article, then sources, then references from those. Tab Canopy organises them in a tree instead of a flat list. Nest tabs under others, drag to reorder, search with Ctrl+F. It lives in the side panel, works across windows, and stays in sync. Everything is stored locally in your browser.

It’s on the Chrome Web Store and Firefox Add-ons, and open source (MIT) on GitHub. WXT made it straightforward to build one codebase for both. Plenty of extensions already do tree-style tabs; I built this one to have a real use case for the Firtoz collection packages (IndexedDB + TanStack collections). The experiment turned into something I use every day.
Then the cracks showed. Moving a parent tab in the browser could scramble the tree; closing one could leave orphans; an update would sometimes overwrite the structure the UI had just set. Fixing one bug broke another. So I fixed the collections layer, rewired the extension around a single reconciler, and got the tests green. Here’s what changed and why it matters.

