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].
Collections get their own id collectionId key, but every non-collection route collapses onto the single key '0'.
Raised the issue at #253
- Record date: 2026-09-05T16:18:31.395Z