ASAysha Shafique
← Back to all projects
BROWSER EXTENSION

BookSwitch

Arc is my favorite browser, but it doesn't run on Linux—and what I missed most was jumping to a pinned site with a single keystroke. BookSwitch rebuilds that shortcut for Chrome and Firefox: Alt+1 through Alt+9 open the first nine bookmarks in your bar. Published on both stores.

01Published on both stores
02One build, two browsers
03Alt+1–9 bookmark jumps
04No new list to maintain
01

Rebuilding the one shortcut I missed

Moving to Linux meant giving up Arc, and the habit I reached for constantly was jumping to a pinned site with Command plus a number. Rather than settle for clicking through the bookmarks bar, I rebuilt that muscle memory as an extension for the browsers I actually had.

  • Turns frequently used sites into single-keystroke jumps.
  • Reuses the browser's own bookmarks instead of introducing a second list to keep in sync.
  • Keeps the same numbered workflow whether I'm in Chrome or Firefox.
02

Your bookmarks bar is the config

There's nothing to set up. BookSwitch reads the first nine URLs in your bookmarks bar and binds them to Alt+1 through Alt+9, so reordering the bar reorders the shortcuts and the mapping always matches what you see.

  • Alt plus a number opens the bookmark in that position in a new tab.
  • Folders are skipped so every slot resolves to a usable URL.
  • No accounts, storage, or manual mapping to maintain.
03

Why Svelte 5, WXT, and Bun

An extension this small shouldn't ship a heavy runtime. I built the popup in Svelte 5, which compiles to minimal vanilla JS with no virtual DOM—ideal for what is essentially a settings panel. WXT handles the cross-browser plumbing, emitting Chrome MV3 and Firefox builds from one source with fast HMR during development, while Bun keeps installs and builds near-instant.

  • Svelte 5 runes give reactive UI with a tiny bundle and no framework overhead in the popup.
  • WXT abstracts the Chrome and Firefox manifest differences, so one codebase produces both store builds.
  • Bun runs the dependency and dev loop; a first-run page walks users through any shortcut the browser won't auto-assign.
Where to?