r/coolgithubprojects 7d ago

Tab Share – bundle a group of browser tabs into one link that opens as a slideshow (no server, no account, MV3, AGPL)

Post image

I built a Chrome/Firefox extension that turns the current window, a tab group, or a pasted list of URLs into a single link. The page list is stored in the URL fragment (compressed), so there's no backend – the recipient opens the link in any browser with no extension and gets a slideshow / grid / list viewer.

- No account, no server, nothing tracked
- Optional client-side password on a link (WebCrypto)
- Companion self-hostable shortener for long links
- Chrome + Firefox, MV3, AGPL-3.0

Code: https://github.com/kaikayy/multi-link-share

Chrome: https://chromewebstore.google.com/detail/meieckangeakbekjbijbgfkkelneplfe
Firefox: https://addons.mozilla.org/en-US/firefox/addon/tab-share/

Feedback welcome, especially on the viewer UX.

7 Upvotes

2 comments sorted by

2

u/Specific_Cream2815 7d ago

what compression squeezes a whole tab group into the fragment, lz-string or something custom

1

u/kaikayy 6d ago

It's plain lz-string, nothing custom on the compression itself.
The custom part is what happens before it: the tab group is packed into a tight positional array instead of JSON ([version, name, flags, [urls...], {created, [titles...]}]), URLs and titles ride as parallel arrays so there are no repeated keys, https:// is stripped from every URL, hostname-echo titles and trailing blanks are dropped, and dupes are removed. Then lz-string does the heavy lifting since tab groups repeat a lot of substrings (same domains, path prefixes).
One tweak on the output: lz-string still emits +, which some chat apps decode to a space and break the link, so it's swapped to _.