📚 Full Browser Sync

Self-Hosted, Privacy-First Bookmark Synchronization for Chromium Browsers

🔍 Web Bookmark Viewer

0 Bookmarks

🔐 How Full Browser Sync Works

Zero-Knowledge End-to-End Encryption

Your bookmarks are encrypted client-side inside your browser using strong AES-256-GCM encryption before anything is sent over the network. Key derivation uses PBKDF2 with 100,000 iterations and SHA-256.

The server only ever sees encrypted blobs. Without your Passphrase, nobody (including the server operator) can read or decrypt your bookmarks.

🔒 Deep Dive: Technical Security & Cryptographic Specs
  • Symmetric Cipher: AES-256-GCM (Galois/Counter Mode) authenticated encryption via native WebCrypto API (crypto.subtle).
  • Key Derivation Function (KDF): PBKDF2 with HMAC-SHA-256 and 100,000 iterations (intentionally CPU-hardened against dictionary attacks).
  • Initialization Vector (IV): 12-byte (96-bit) cryptographically random IV generated per upload pass via crypto.getRandomValues().
  • Zero-Knowledge Architecture: Encryption and decryption occur strictly inside your browser. Neither your passphrase nor unencrypted data touches disk or network on the server.
  • Change Hashing: SHA-256 digest digests for server revision verification.

đŸ›Ąī¸ Cross-Browser Sync & Safety Guards

Multi-Browser Support & Data Protection

Full Browser Sync supports syncing seamlessly across Chromium browsers (Chrome, Brave, Edge) and Firefox, with automated data loss prevention safeguards.

  • Cross-Browser Root Folder Mapping: Automatically maps folder names between Chromium (Bookmarks bar, Other bookmarks) and Firefox (Bookmarks Toolbar, Bookmarks Menu).
  • Automated Pre-Restore Local Safety Backup: Saves an automatic snapshot of your current bookmarks into local extension storage before any restore or import, with 1-click rollback UI.
  • Pre-Restore Validation Guard: Validates payload structure and bookmark counts before touching local data, preventing empty or corrupted sync payloads from wiping local bookmarks.
âš™ī¸ Deep Dive: Cross-Browser Compatibility & Filtering Specs
  • Smart Scheme Filtering: Automatically filters Firefox-internal query shortcuts (such as place: URLs) during sync so Chromium browsers never throw API rejection exceptions.
  • Separate Extension Packages: Independent MV3 builds for Chrome (extension/ using background service workers) and Firefox (extension-firefox/ using background scripts).
  • Non-Destructive Folder Merging: Preserves browser-owned root folder IDs while safely recreating nested bookmark hierarchies.

🆔 Choosing Your Sync ID

Can I use any Sync ID? New

Yes! You can choose any Sync ID you like — such as andy, andy-laptop, or my-bookmarks — as long as it's between 3 and 64 characters (letters, numbers, hyphens, and underscores).

  • Custom Names: Pick a memorable Sync ID like andy to easily connect all your browsers.
  • Random UUIDs: Click the "Generate" button in the extension popup to generate a random 36-character UUID v4.
  • Unique Ownership: Whichever Sync ID you pick, as long as it isn't already used by someone else on the server, it becomes your private sync container!

⚡ Automatic Sync & Change Detection

How changes sync across browsers

  • Instant Debounced Push: Whenever you add, delete, rename, or move a bookmark, the extension waits 5 seconds for rapid edits to complete, then pushes an encrypted update to the server.
  • Periodic Pull: Background periodic alarms check the server every 10 minutes (configurable in Settings) to pull changes made on other devices.
  • Sync Now & Force Controls: Use Sync Now or the âŦ‡ Force Download and âŦ† Force Upload buttons in the popup to sync immediately at any time.

🌐 Server Information & Status

Live Server API: https://sync.satoshihost.com

Health Check Endpoint: https://sync.satoshihost.com/status

Max Sync Size: 2 MB (handles thousands of bookmarks)

🧩 Installing the Extension

Supported Browsers

Full Browser Sync works on all Chromium-based browsers (Chrome, Brave, Edge, Opera, Vivaldi).

  • 1. Open chrome://extensions or brave://extensions in your browser.
  • 2. Enable Developer mode (toggle in top right).
  • 3. Click Load unpacked and select the extension/ folder.
  • 4. Enter your Server URL, Sync ID, and Passphrase in the extension popup.