FavBox is a local-first experimental browser extension that enhances and simplifies bookmark management without cloud storage or third-party services. It extends your browser's native bookmarking features.
Key features:
π sync with your browser profile;
π does not send your data to any third-party services;
π¨ minimalist and clean UI;
π· supports tags for easy organization;
π provides advanced search, sorting, and filtering capabilities based on tags, domains, folders, and webpage keywords;
π multiple display modes;
π light and dark theme;
ποΈ includes a health check function that detects broken URLs;
β¨οΈ provides quick access to search with hotkeys;
ποΈ includes functionality for creating and managing local notes;
β€οΈ free and open source;
FavBox scans all bookmarks in the browser, then makes requests to the saved pages and extracts data from them such as title, description, image, and meta tags to improve the search. All the data is stored in local storage IndexedDB. The extension also tracks all browser events related to bookmarks and synchronizes the data. It only extends the standard functionality and does not attempt to replace it. You can work with bookmarks both through the extension and the native browserβs built-in bookmark features.
FavBox is a fully local application. To keep tags synced across devices, it uses a trick. Since bookmarks are synchronized between devices, to keep tags synchronized, the app adds them to the page title.
For example, if you have a bookmark titled Google Chrome β Wikipedia
, to save tags across devices, extension appends them to the title like this:
Google Chrome β Wikipedia π· #wiki #browser
This way, your tags become available on other devices without using any cloud services β only through the standard Google Chrome profile sync.
βββ public # Static assets (icons, etc.)
βΒ Β βββ icons
βββ src # Source code
βΒ Β βββ assets # Global assets
βΒ Β βββ components # Common reusable app components
βΒ Β βΒ Β βββ app
βΒ Β βββ ext # Browser extension includes main app, popup, content script, and service worker
βΒ Β βΒ Β βββ browser # FavBox app
βΒ Β βΒ Β βΒ Β βββ components # FavBox components
βΒ Β βΒ Β βΒ Β βββ layouts
βΒ Β βΒ Β βΒ Β βββ views
βΒ Β βΒ Β βββ content # Content scripts
βΒ Β βΒ Β βββ popup # Extension PopUp window
βΒ Β βΒ Β βββ sw # Service Worker of the browser extension
βΒ Β βββ helpers # Shared utilities
βΒ Β βββ parser # Library to parse HTML content
βΒ Β βββ storage # IndexedDB storage
βΒ Β βΒ Β βββ idb
βΒ Β βββ workers # JS Workers
βββ tests
βββ integration
βββ unit
pnpm run build
to build intodist
- Enable dev mode in
chrome://extensions/
andLoad unpacked
extension
dev
Start development serverdev:firefox
Firefox development build (WIP)build
Production buildtest:unit
Run unit teststest:integration
Run integration tests
- Use SQLite Wasm for storage (ideal for future experiments)
- Improve transaction implementation (ensure reliability & better performance)
- The extension already uses a polyfill to maintain compatibility with other browsers. It would be good to test this in Firefox. (WIP)