Most new tab pages show you a grid of links you already have bookmarked. OpenTabs shows you the twenty-six tabs you actually have open — grouped by site, sorted by what you touched last, closable from the page — above a briefing you assemble yourself.
A new tab opens thirty to a hundred times a day. Anything that makes it hesitate is felt every one of those times, so nothing interesting is allowed on the critical path.
chrome.alarms ─► service worker ─► fetch → rank (Rust/wasm)
│
render-ready JSON
│
▼
chrome.storage.local
│
new tab opens ─────────────► read once, paint. done.
All the work happens where nobody is waiting. The page itself ships about 4 KB gzipped, loads no WebAssembly, and makes no network request when it opens — a budget the test suite enforces, so it stays true as the product grows.
Every group is optional, reorderable, and off until you turn it on.
Any subject you can name, from RSS, Hacker News, arXiv, Reddit or an X search — deduplicated across sources and ranked, not concatenated.
Crypto and equities, at the interval you choose.
From coordinates you set. No location permission, no IP lookup.
A to-do list with sub-tasks, reordering, and items that clear themselves six hours after you tick them.
A read-only ICS address. Real recurrence handling, not a naive expansion.
Grouped by site, duplicates closable in one press, stale New Tab pages closed on a schedule you set.
Not a policy — an architecture, and one that can be checked.
Your configuration lives in your own browser profile. There is no server holding it, so there is no server to breach, subpoena or shut down.
A group you never enable never asks for a site, and never makes a request. The install prompt is not where you agree to everything up front.
Signing in — optional, and only to publish or like a pack — stores a one-way digest. The marketplace database has no column that could answer "what has this account liked".
Chrome 121 or later, Edge, or Firefox. Not in the stores yet — this is the build itself, and it is the same bytes that will go to them.
opentabs-chromium for Chrome and Edge,
opentabs-firefox for Firefox.
chrome://extensions
(or edge://extensions), turn on Developer mode, press
Load unpacked and pick the unzipped folder. On Firefox open
about:debugging#/runtime/this-firefox, press
Load Temporary Add-on and pick any file inside the folder.
Prefer to build it yourself? cargo test --workspace then
npm ci && npm run build in apps/extension. The
source is MIT.