LifeTech · EXP #12
Curo
A local-first bookmark manager that imports any browser's bookmarks export, detects exact and fuzzy duplicates, flags organizational gaps, and scores the whole library on a configurable Knowledge Health Score — entirely client-side.
All experimentsProblems solved
- My browser bookmarks are such a mess that I cannot find anything
Context
Bookmarks accumulate for years across every browser a person has used, and most managers only ever add to that pile — they don't audit it. Curo set out to treat an unmanaged bookmarks bar as a data-quality problem: duplicates, dead folders and links nobody will ever find again, entirely inside the browser with no account and no server.
The challenge
The product needed to take a raw HTML bookmarks export from any browser and turn it into something a person could trust — deduplicated, organized and scored — without ever sending that browsing history anywhere, which ruled out any server-side processing or account system.
Research
Looked at how existing bookmark managers handle duplicates and found most only catch exact-URL matches — near-duplicates, like the same article with different tracking params, went untouched, which is why fuzzy grouping became the core of the product rather than a secondary feature.
Insights
The key findings that shaped the direction.
A pile of bookmarks isn't a library — it's an unaudited data set
Users didn't need another place to save links; they needed something to tell them what was wrong with the links they'd already saved, which reframed the product from a save-tool to an audit-tool.
Exact-match duplicate detection catches maybe half the problem
Near-duplicates — the same article with different query params, or both the AMP and canonical URL bookmarked — needed fuzzy title and URL matching to actually surface, not just exact comparisons.
A single health score is what makes 'good enough' visible
Nobody was going to manually audit two thousand bookmarks; a configurable, weighted score across duplicates, organization, tags and freshness gave people a number to chase instead of an infinite backlog.
How decisions were made
- 01
Start from an import, not an empty state. Built the first-run experience around dragging in an existing HTML bookmarks export, with a live preview of what will be added, so the product proves its value against a person's real, messy library on the first screen.
- 02
Separate detection from resolution. Split duplicate handling into a detection pass — exact-URL and fuzzy-title grouping — and a resolution step, so bulk cleanup never silently merges or deletes anything without an explicit choice.
- 03
Make the score explain itself. Broke the Knowledge Health Score into five weighted, individually adjustable factors — duplicate-free, organized, tagged, well-labeled, fresh — each with its own explanation of what's dragging it down.
- 04
Treat local storage as the entire architecture. Designed every interaction — search, tagging, collections, export — around IndexedDB as the only datastore, which meant designing for what happens when a user clears their browser data, not just the happy path.
Solution
A local-first bookmark manager that imports any browser's bookmarks export, detects exact and fuzzy duplicates, flags organizational gaps, and scores the whole library on a configurable Knowledge Health Score — entirely client-side.
- HTML bookmarks import from Chrome, Firefox, Safari or Edge with a live preview before anything is written
- Exact-URL and fuzzy near-duplicate detection with one-click bulk merge
- Cleanup Engine flagging missing metadata, empty folders and broken hierarchies
- Custom and automatic collections, fuzzy search, and export to HTML, CSV, JSON or Markdown
Keep exploring
More experiments worth trying.
More time for what really matters.

