I built Shelf because I kept ending up with way too many tabs open.
Bookmarks never really worked for me for this. Most of the time I don't want to bookmark something permanently. I just want to put a bunch of tabs away, get them out of my browser, and come back to them later.
I also didn't want another service storing my browsing/session data, so Shelf doesn't have a backend or an account system. Everything is stored locally using Chrome's extension storage. There are no analytics, telemetry, external requests, host permissions, or content scripts.
You can save a single tab, selected tabs, a tab group, a window, or everything you have open. Sessions are searchable and you can restore individual tabs or the whole session later. Chrome tab groups are preserved as well.
A couple of implementation details I spent some time on:
Shelf writes and verifies a session before closing the original tabs. If the save fails, the tabs stay open.
When you restore a full session, the tabs are created unloaded so restoring a large session doesn't suddenly load 100+ pages.
There's also local trash, duplicate detection, JSON backup/export, OneTab import, and an optional per-window tab limit.
The main tradeoff with keeping everything local is that uninstalling the extension removes its local data, so I added JSON backups for that reason.
I'm particularly interested in feedback from people who use OneTab, Session Buddy, or similar tools.
I'd also be curious what people think about cross-device sync. I intentionally left it out because I didn't want Shelf to require an account or backend, but there may be a reasonable local-first approach to it.
anatolykhelmer•40m ago
Will it work in Firefox? How can I install it there?
mirza_rizvi•53m ago
Bookmarks never really worked for me for this. Most of the time I don't want to bookmark something permanently. I just want to put a bunch of tabs away, get them out of my browser, and come back to them later.
I also didn't want another service storing my browsing/session data, so Shelf doesn't have a backend or an account system. Everything is stored locally using Chrome's extension storage. There are no analytics, telemetry, external requests, host permissions, or content scripts.
You can save a single tab, selected tabs, a tab group, a window, or everything you have open. Sessions are searchable and you can restore individual tabs or the whole session later. Chrome tab groups are preserved as well.
A couple of implementation details I spent some time on:
Shelf writes and verifies a session before closing the original tabs. If the save fails, the tabs stay open.
When you restore a full session, the tabs are created unloaded so restoring a large session doesn't suddenly load 100+ pages.
There's also local trash, duplicate detection, JSON backup/export, OneTab import, and an optional per-window tab limit.
The main tradeoff with keeping everything local is that uninstalling the extension removes its local data, so I added JSON backups for that reason.
The source is MIT licensed:
https://github.com/mirza-rizvi/shelf
I'm particularly interested in feedback from people who use OneTab, Session Buddy, or similar tools.
I'd also be curious what people think about cross-device sync. I intentionally left it out because I didn't want Shelf to require an account or backend, but there may be a reasonable local-first approach to it.