floccus bookmark sync

org.handmadeideas.floccus
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

**What is the Floccus Companion?** The Floccus Companion is a mobile app that lets you **view, organize, and share** the bookmarks you sync with the Floccus browser extension. It brings the same privacy‑first, cross‑device sync experience to your phone or tablet. **Key Features** - **Instant Access** – View all synced bookmarks directly on your device, no web browser required. - **Multiple Back‑end Support** – Connect to the same storage you use in the extension: - Nextcloud - Linkwarden - KaraKeep - WebDAV - Git - Google Drive - Dropbox - **Full Privacy** – Your data stays on the server you choose; no third‑party tracking. - **Share & Collaborate** – Share bookmark collections with friends or teams via public links or group sharing (Nextcloud, Linkwarden, KaraKeep). - **Offline Mode** – Browse your bookmarks even without an internet connection; changes sync when you reconnect. - **Open‑Source** – The app’s source code is available on GitHub, allowing community contributions and transparency. **Benefits** - **Seamless Cross‑Platform** – Keep your bookmarks consistent across Chrome, Firefox, Edge, Safari, and mobile. - **Convenient Organization** – Tag, folder‑organize, and search bookmarks on the go. - **Secure Collaboration** – Share collections with colleagues or friends while maintaining control over who sees what. **Why Floccus?** Floccus is built on a voluntary subscription model and is maintained by a passionate community. The companion app extends that philosophy to mobile, ensuring your bookmarks are always within reach, wherever you are. **Get Started** 1. Install the **Floccus** browser extension on your desktop. 2. Download the **Floccus Companion** from the Google Play Store. 3. Sign in with the same backend (Nextcloud, Linkwarden, etc.). 4. Start browsing your synced bookmarks instantly. **Download now and experience bookmark freedom on your phone!**

First release: Aug 27, 2025, 15 total releases.

Most recent release: Sep 27, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 27, 2026 5.11.0
    ### Summary - Over 60 small and larger performance and correctness fixes, especially for Android and iOS. - Support for tags on Android and iOS, for adapters that support them. - Git support on Android and iOS ### New * [native] feat: Support tags on Android and iOS * [native] feat: Display tags of the current folder in a sheet below the top bar * [native] feat: Allow searching for multiple tags and allow matching tags by searches partially
    More…
    * [native] feat(git): Make git work on native * [native] feat: Don't let screen go dark during sync ### Fixed * fix(OAuth): Prompt people to re-login if they do cross-device imports of OAuth profiles * [native] perf: Implement SQLite-backed tree storage * [native] perf: Move logs to sqlite * [native] perf: Move cache tree to sqlite * [native] perf(sqlite): Flush in a microtask instead of using setTimeout * [native] perf: Actually use NativeTree#bulkImportFolder during sync * perf: Use a global iterations counter for serializing the tree asynchronously to give the runtime breathing room * perf: Remove unnecessary Parallel.map(.., 1) call * perf: Optimize Diff usage * perf: Optimize cache persistence * perf: Scale progressInterval with tree size * perf(NextcloudBookmarks): Do not load all bookmarks just to delete a bookmark * perf: Track pending continuation in SQLite/IndexedDB * perf: Simple speed up of continuation serialization * perf(tree): Avoid rebuilding index on every mutation * [native] fix(NextcloudBookmarks): Fix bulkImport * [native] fix: Introduce preferences setters * [native] refactor: Make UI read from sqlite * [native] refactor: Keep & invalidate folder hashes rather than recomputing them * [native] fix: Update Podfile and cap config * [native] fix(tags): Sort tags in normalizeTags * [native] fix(tests): Use different URLs for each test and fix tags convergence * [native] tests(tags): Add tags tests to Appium test suite * [native] fix: Make sure search items are updated when the tree changes * fix(ui): Fix flickering redraws * fix(SyncProcess): Fix reorder reconciliation * fix(NextcloudBookmarks): Abort read requests on cancel * fix(NextcloudBookmarks): Fix handling of javascript bookmarks * fix(NextcloudBookmarks): Fix update{Bookmark,Folder} to not reorder without parent changes * fix(NextcloudBookmarks): Fix sendOCSRequest * fix(NextcloudBookmarks): Fix removeBookmark * fix(NextcloudBookmarks): correct createBookmark bookkeeping * fix(NextcloudBookmarks): Fix locking and cancel logic * fix(NextcloudBookmarks): Fix hash function handling * fix(NextcloudBookmarks): Don't fail if parent in update{Folder,Bookmark} can't be found * fix(NextcloudBookmarks): Don't fail if parent in updateBookmark can't be found * fix(SyncProcess): Make sure we map the contents of a folder re-created because its origin was removed * fix(Linkwarden): Do not leak isRoot flags for non-root folders * fix(NextcloudBookmarks#bulkImport): Make sure all chunked bulkImports get added to the target folder, not just the last * fix(bulkImport): Make sure chunked bulkImports get added to mappings * fix(Continuation): Don't apply failsafe for resumed sync runs * fix(Continuation): Don't fail sync if continuation can't be read * fix(Continuation): Check the right strategy when resuming * fix(Continuation): Resume at reorder stage if reorders are persisted * fix(Continuation): Persist continuation one last time upon sync failure * fix(NativeCacheStore): Don't drop statements when saving fails * fix(SyncProcess): Correct stage 3 members to persist condition * fix(Diff): Copy actions and seqs in getPendingChangesAsync * fix(tests): Make order check adapter dependent * fix(SyncProcess): Make failsafe less agressive for tab sync * fix(Scanner): Allow moving a folder into its own descendant iff it was moved out of the folder * fix(NextcloudBookmarks): Don't stop loading sparse tree too early * fix: enhance snapshot management in Mappings * fix: Introduce clearContinuation, resolve quadratic tree scans at sync start * fix: Throw LocalFolderNotFound instead of creating random folders, do not disable newly-imported profiles * fix(BrowserTree): Do not move bookmarks to end of folder upon rename * fix(Dropbox): Retry 500 errors * fix: Cleanup mappings for missing local and server items * fix: Fix race in SQLite/IndexedDB continuation code * fix(Tree#updateIndex): Rebuild item index to account for adapter ID rewriting * fix(Linkwarden): Retry requests for 5xx responses
  • Aug 30, 2026 5.10.3
    ### New * feat(Linkwarden): resolve serverFolder as nested path with auto-creation (thanks to Clemens Eyhoff) ### Fixed * fix: Remove sentry integration * fix(CachingTreeWrapper): Avoid collisions between Chromium IDs and CachingAdapter IDs * [android] fix: Add a WebViewError activity that will be displayed if WebView is too old * fix(NewAccount): Display sync interval option for browser users
    More…
    * Translation updates
  • Jul 18, 2026 5.10.2
    ### Fixed - fix(Dropbox): encode JSON in request headers correctly - fix(WebDAV): encode path components of MOVE request Destination header to handle non-ascii filenames correctly - Translation updates
  • Jul 3, 2026 5.10.1
    ### Fixes - fix(Dropbox): Fix intermittent 409 errors - fix(settings): Correct display condition
  • Apr 10, 2026 5.9.1
    ### Fixed * fix: Don't clear logs when service worker restarts * fix(xml-parser): Use latest lib version and set limits to Infinity * fix: Fix getBackoffInterval logic in BrowserController and NativeController
  • Apr 4, 2026 5.9.0
    ### New * feat: Dropbox sync backend integration (thanks to Aaryan Vangari) * feat: New language: Hindi * enh(messages): Give better instructions in case of failsafe * [native] perf(NativeTree): Don't calculate hash upon loading tree ### Fixed * [native] fix(Dropbox,GDrive): Display error message if login fails * fix(Logger): Do not persist empty logs * fix(SyncProcess): Improve handling of residual CREATE/REMOVE actions from subordinate scanner runs
    More…
    * fix(Account): Use async lock for loading accounts * fix(Controller): Fix capped exponential backoff logic * fix(Continuation): Add null checks to prevent Cannot read properties of null (reading 'getCapabilities') errors * fix(Git): Clear indexedDB after sync * fix: Cannot read properties of null (reading 'getCacheTree') * fix: Report status message for HttpErrors * chore(deps): Update dependencies
  • Jan 23, 2026 5.8.6
    ### Fixed - fix(Tree): Revert incremental index updates (Would break initial sync on Chrome)
  • Jan 23, 2026 v5.8.6 Release page →
    ### Fixed - fix(Tree): Revert incremental index updates (Would break initial sync on Chrome)
  • Jan 20, 2026 v5.8.5 Release page →
    ### Fixed - [native] fix: Properly serialize cache
  • Jan 19, 2026 v5.8.4 Release page →
    * feat(Logger): Persist logs intermittently * feat(NewAccount): Add predefined webdav service URLs * fix(Controller): Only schedule sync if current error is transient * fix: Display allowRedirects option on mobile * fix(SyncProcess): Fix serialization for continuation persistence * Fix: Reduce memory pressure by reducing ACTION_CONCURRENCY * fix(Unidirectional): Only do a single Scanner pass to improve performance * fix(childrenSimilarity): Make O(n) instead of O(n²) * fix: Fix typeof undefined checks to handle null * fix(Diff): Do not call .toString on null
    More…
    * fix(Folder#toJSON): Make sure children are properly serialized * fix(BrowserAccountStorage): Use setEntry instead of changeEntry * fix(Caching#orderFolder): Fix orderFolder algorithm * fix(LocalTabs): Properly distinguish between window IDs and group IDs * fix(continuation): Fix continuation loading * fix(index): Update index incrementally instead of recreating it every time * fix(SyncProcess): Reduce size of continuation on disk to prevent breaking sync with large amounts of bookmarks * fix(CachingAdapter): Whitelist more browser-specific URL schemes * fix(Non-Atomic adapters): Reduce HTTP request parallelism for better throughput * fix(Account): Add log statement for continuation loading error * fix(Mappings#remove): Correct logic to always handle both remote and local IDs * chore: Update dependencies
  • Dec 20, 2025 v5.8.3 Release page →
    ### Fixed - fix(Logger): Trim logs regularly to avoid memory leak - fix(Scanner): Remove Log spam - fix(LocalTabs): Fix dummyTab workaround for tab group creation on firefox - fix(LocalTabs): Do not parseInt(windowId) - fix(css): Use proper css - fix(Account#progressCallback): Prevent errors getting mappings after sync has finished - fix: Multiple small hardenings - fix(Account#sync): Do not re-init account if failsafe triggers - fix: show warning on mobile if browser doesn't match
    More…
    - fix(failsafe): be more precise about where bookmarks are added/deleted - fix(WebDAV): Use includeCredentials option again - fix(Chrome): Prevent chrome from killing our worker while it's syncing - [native] fix: Make breadcrumbs clickable again
  • Dec 7, 2025 v5.8.2 Release page →
    ### Fixed - fix: Resume sync with reset cache after MappingFailure - fix(DescriptionAccountcreated): Mention that combining floccus with browser sync doesn't work - fix: Introduce proper XbelParseError - fix: Introduce proper error for invalid URL - fix: Try to fix 'Calling getCacheTree() of undefined' error - fix: Make Caching#orderFolder behave like BrowserTree#orderFolder to avoid ordering mistakes - fix: Implement GC for mappings
  • Nov 22, 2025 v5.8.1 Release page →
    ### Fixed * [native] fix: Don't allow import of git profiles * fix: Make cancelSync work more immediately on Firefox * fix: Don't get stuck on syncing in firefox when waking up from suspend
  • Nov 16, 2025 v5.8.0 Release page →
    ### New - enh: Remember last used account - enh(GoogleDrive): Add a HTTP request timeout - feat: Split interval based sync and change-based sync into two options ### Fixed * [native] fix(NativeApp): Don't use css inset property * [native] fix: Refuse to import gdrive profiles, because it doesn't work anymore * fix(CachingAdapter): set initialTreeHash after getBookmarksTree * fix(browser-api): Do not carry context into each callback (Improves memory consumption)
    More…
    * fix: Remove confusing detail from E020 message Marcel Klehr 11/14/25, 9:33 AM * fix(Folder#inspect): Make hash visible again * [native] Fix DialogChooseFolder2: keep header fixed, make treeview scrollable with dynamic max-height unknown * fix(SyncProcess): Catch throttledCb cancelled error * fix(Nextcloudbookmarks): Fix 404 error on capabilities endpoint
  • Aug 27, 2025 v5.7.0 Release page →
    ### Summary * Sync notifications – You’ll now see “sync in progress” and “sync complete” alerts on Android and iOS * Search improvements – The app remembers the last folder you searched in, shows folder paths in results and lets you search for folders. * Feedback – Submit one‑off feedback directly from the app. * Messaging – TLS is now mentioned in the E017 explanation. * Sync logic – Fixed issues with reorders, concurrency and continuation handling during interrupted syncs.
    More…
    * Account progress – Cache and mappings now persist for atomic backends. * Browser tree – Concurrency limited to 1 to avoid race conditions. * Localization – Added translations for many languages (ro_RO, el, it, fi, cs, pl, sv, tr, et, ko_KR, ru, de, ja, pt, zh_CN, fr, es). * Scrolling – Capacitor status bar plugin now prevents content from scrolling under the status bar. * Local tabs – New tab groups stay alive long enough for tabs to be added. * General – Cancelled local tree operations, ensured skipped reorders are retracted and cleared continuations properly. * Overall sync performance has been optimized, reducing wait times and resource usage. ### New * [native] feat(notifications): Send 'sync in progress' and 'sync complete' notifications * [native] feat(search): Remember last used folder across app starts * [native] feat(search): Display folder path for folder search results * [native] feat(search): Allow searching for folders * feat(BrowserController): setUninstallURL * [native] feat(search): display folder path for search results * feat(hashing): Add support for xxhash3 * feat: Optionally support murmur3 + implement capabilities negotiation * feat(BrowserController): Listen to tab events * feat(AccountCard): Mention FAQ when errors occur * feat(telemetry): send used adapter along with error events to sentry, if enabled (opt-in) * feat(Feedback form): Allow submitting one-off feedback * feat(HtmlSerializer): Use auto-inc IDs as a fallback when parsing ### Fixed * fix(messages): Mention TLS in E017 explanation * fix(reconcileDiffs): Don't throw away REORDERs if concurrent reorder is empty * fix(Account#progressCallback): persist cache and mappings for atomic backends * fix({Default,Merge}SyncProcess#reconcileDiffs): Restrict concurrency * fix(DefaultSyncProcess#reconcileDiffs): Use the right findChainCache * fix(MergeSyncProcess): reconcileDiffs was outdated * fix(BrowserTree): Set concurrency to 1 * Translate messages.json in ro_RO,el,it,fi,cs,pl,sv,tr,et,ko_KR,ru,de,de,ja,pt,zh_CN,fr,es * [native] fix: added the capacitor status bar plugin to fix scrolling content over the status bar (Thanks to @yougotwill) * fix(SyncProcess): Make sure to cancel progress callback throttling in the end * fix(continuations): Set current continuation to null at the very end * fix(SyncProcess): Make sure skipped reorders are retracted * fix: Allow cancelling local tree operations as well * fix(interrupted sync): Allow storing + restart of stage 3 to/from continuation * fix(interrupted sync): Set back old cacheTree upon loading pending continuation * fix(SyncStrategy): Fix Continuation loading * perf: Improve overall sync performance * fix(NextcloudBookmarks): Fix ticket failure retry mechanism * fix(NextcloudBookmarks): Improve ticket failure retry mechanism * feat(NextcloudBookmarks): Support ticket authentication * fix(NextcloudBookmarks): Fix checkFeatureJavascriptLinks * feat(NextcloudBookmarks): Use negotiated hash function from hashSettings * feat(NextcloudBookmarks): Use capabilities for feature detection * fix(LocalTabs): Make sure new groups live long enough for tabs to be added to them * fix(GoogleDrive): Improve error handling