Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Contributing to one of my personal Bookmarks manager - and making it better for everyone

Description and use

Implemented composite cache keys in Raindrop.io to preserve collections offline, fixing the overwrite issue caused by a shared '0' key.

Problem

The Raindrop.io desktop app refreshed on every action and lost bookmark collections when offline, making it unusable for personal use.

Outcome

The PR fixed the cache key collision, allowing collections to persist offline and improving overall app reliability for users.

Workflow

  • 1. Clone Raindrop.io webapp and desktop repos. 2. Inspect cache implementation in webapp. 3. Identify that all non‑collection routes use key '0'. 4. Propose composite keys for collection routes. 5. Discuss with project maintainers via issue #253. 6. Implement composite key logic in cache access. 7. Test offline behavior and verify collections persist. 8. Submit PR with detailed explanation and tests.

Evidence

Webapp's bookmark cache is a KV store keyed by the first route segment: state.bookmarks.spaces[spaceId].

Source

Collections get their own id collectionId key, but every non-collection route collapses onto the single key '0'.

Source

Raised the issue at #253

Source

  • Record date: 2026-09-05T16:18:31.395Z