Menu β–Ύ β–΄

Tree [dcbb3b] master dev /
 History

HTTPS access


File Date Author Commit
 public 2024-12-25 Dmitry Magalyas Dmitry Magalyas [46ac70] reworked popup / general improvements (wip)
 src 2025-07-18 Dmitry Magalyas Dmitry Magalyas [dcbb3b] v2.1.2
 tests 2025-07-06 Dmitry Magalyas Dmitry Magalyas [55fbef] feat: add handling for existing bookmarks
 .env 2025-05-31 Dmitry Magalyas Dmitry Magalyas [3491cd] common ext updates
 .eslintignore 2025-07-09 Dmitry Magalyas Dmitry Magalyas [349f65] chore: upgrade dependencies
 .eslintrc.cjs 2025-07-14 Dmitry Magalyas Dmitry Magalyas [e07178] style: fix eslint
 .gitignore 2023-02-26 Dmitry Magalyas Dmitry Magalyas [2cb8e8] Vite + PNPM
 README.md 2025-07-13 Dmitry Magalyas Dmitry Magalyas [4aecab] v2.1.0
 app_demo.png 2025-07-13 Dmitry Magalyas Dmitry Magalyas [4aecab] v2.1.0
 concept.png 2025-06-22 Dmitry Magalyas Dmitry Magalyas [58c12f] db improvements and optimizations
 manifest.chrome.json 2025-07-18 Dmitry Magalyas Dmitry Magalyas [dcbb3b] v2.1.2
 manifest.firefox.json 2025-07-18 Dmitry Magalyas Dmitry Magalyas [dcbb3b] v2.1.2
 package-lock.json 2025-07-14 Dmitry Magalyas Dmitry Magalyas [e07178] style: fix eslint
 package.json 2025-07-18 Dmitry Magalyas Dmitry Magalyas [dcbb3b] v2.1.2
 vite.config.firefox.js 2025-03-23 Dmitry Magalyas Dmitry Magalyas [d69a57] major update & improvements
 vite.config.js 2025-07-09 Dmitry Magalyas Dmitry Magalyas [349f65] chore: upgrade dependencies

Read Me

FavBox

issues ver license love

image

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:

πŸ”„ Syncs with your browser profile \
πŸ”’ No data sent to third-party services\
🎨 Minimalist, clean UI\
🏷️ Tag support for easy organization\
πŸ” Advanced search, sorting, and filtering by tags, domains, folders, and keywords\
🌁 Multiple display modes\
πŸŒ— Light and dark themes\
πŸ—‘οΈ Detects broken and duplicate bookmarks\
⌨️ Hotkeys for quick search access\
πŸ—’οΈ Local notes support\
❀️ Free and open source

Concept

image

Implementation

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

Building

  1. pnpm run build to build into dist
  2. Enable dev mode in chrome://extensions/ and Load unpacked extension

Commands

  • dev Start development server
  • dev:firefox Firefox development build (WIP)
  • build Production build
  • test:unit Run unit tests
  • test:integration Run integration tests

TODO

  • 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)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.