Initial commit: Shelf read-later extension

This commit is contained in:
2026-07-13 11:11:24 +10:00
commit d627e6bb44
10 changed files with 876 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# Shelf — Read Later
A new-tab page that shows everything you've saved to read later, as a
sortable grid or list. No account, no server — everything lives in your
browser's local extension storage.
## How to save something
- **Click the toolbar icon** — saves the page you're currently on.
- **Right-click a page** → "Save page for later"
- **Right-click a link** → "Save link for later" (doesn't need to be open)
A ✓ briefly appears on the icon to confirm the save.
## The shelf (new tab page)
- Toggle between **grid** (cards with thumbnails) and **list** (compact,
bookshelf-spine style) — top right.
- **Sort** by newest, oldest, title, or site.
- **Search** filters by title, domain, or URL as you type.
- **Archive** tucks an item away without deleting it; "Show archived"
reveals archived items again.
- **Delete** removes an item, with a 5-second **Undo**.
Thumbnails are captured automatically when you save the *current* page
(a screenshot of what's on screen). Links saved via right-click show a
favicon instead, since the browser hasn't loaded that page yet.
## Install — Chrome / Edge (unpacked)
1. Go to `chrome://extensions` (or `edge://extensions`).
2. Turn on **Developer mode** (top right).
3. Click **Load unpacked** and select this folder.
4. Open a new tab — you should see the Shelf page.
## Install — Firefox (temporary, for testing)
1. Go to `about:debugging#/runtime/this-firefox`.
2. Click **Load Temporary Add-on…**
3. Select the `manifest.json` file inside this folder.
4. Open a new tab. Firefox will ask permission to let the extension
override the new tab page the first time — allow it.
> Temporary add-ons in Firefox are removed when you close the browser.
> For a permanent install, the extension needs to be signed by Mozilla
> (via [addons.mozilla.org](https://addons.mozilla.org)) or loaded in a
> [Developer Edition / Nightly build](https://www.mozilla.org/firefox/developer/)
> with `xpinstall.signatures.required` set to `false`.
## Notes / things you might want to change
- Storage uses `chrome.storage.local`, so saved links stay on the device
you saved them on. Swapping the `chrome.storage.local` calls for
`chrome.storage.sync` in `background.js` and `newtab.js` would sync
small link lists across your signed-in browsers, but `sync` storage
has a much smaller quota (~100KB) and doesn't handle thumbnails well —
not recommended once you have images in the mix.
- Icons in `icons/` are placeholders — swap them for your own artwork
any time; sizes 16/32/48/128 are already wired up in `manifest.json`.