Add a new Real-World Projects lesson: Semantic Search Over Your Browser Bookmarks (backlog idea #17).
Scope
docs/projects/bookmarks-semantic-search/index.md — new lesson matching the house skeleton. Builds on the RAG projects (embedding + cosine similarity) but turns the pipeline sideways: instead of chunking a document, you index a whole collection of small records (title + URL + folder) and search across them, so the focus shifts to parsing a structured export and to "find the bookmark that matches this idea" queries.
examples/bookmarks-semantic-search/ — a real, runnable tool: parses a Netscape-format bookmarks HTML export (the format Chrome/Firefox/Edge all export), builds a local embedding index with sentence-transformers, and provides a search CLI that ranks bookmarks by relevance to a natural-language query, showing folder + title + URL per hit. Includes a bundled sample bookmarks export for out-of-the-box testing, a notebook.ipynb, and a README.md.
- Registration:
src/data/projects.ts, docs/projects/index.mdx, src/pages/index.tsx (English only — no i18n changes).
- Colab/Kaggle/Binder badges in "Where to run this", pointed at this PR's branch (to be updated to
main once merged); the notebook parses a sample bookmarks export embedded in the notebook and runs the search pipeline over it.
Framing note
The lesson should be honest that bookmarks exports mix genuinely useful records with a long tail of dead links and single-use tabs — so a search tool over bookmarks is really an exercise in prioritization, and it should encourage pruning or at least noticing what the tool surfaces vs. what it buries. It's also a natural place to discuss the tradeoff between keyword search (exact, fast, misses synonyms) and embedding search (semantic, slower to build, catches meaning).
Add a new Real-World Projects lesson: Semantic Search Over Your Browser Bookmarks (backlog idea #17).
Scope
docs/projects/bookmarks-semantic-search/index.md— new lesson matching the house skeleton. Builds on the RAG projects (embedding + cosine similarity) but turns the pipeline sideways: instead of chunking a document, you index a whole collection of small records (title + URL + folder) and search across them, so the focus shifts to parsing a structured export and to "find the bookmark that matches this idea" queries.examples/bookmarks-semantic-search/— a real, runnable tool: parses a Netscape-format bookmarks HTML export (the format Chrome/Firefox/Edge all export), builds a local embedding index withsentence-transformers, and provides a search CLI that ranks bookmarks by relevance to a natural-language query, showing folder + title + URL per hit. Includes a bundled sample bookmarks export for out-of-the-box testing, anotebook.ipynb, and a README.md.src/data/projects.ts,docs/projects/index.mdx,src/pages/index.tsx(English only — no i18n changes).mainonce merged); the notebook parses a sample bookmarks export embedded in the notebook and runs the search pipeline over it.Framing note
The lesson should be honest that bookmarks exports mix genuinely useful records with a long tail of dead links and single-use tabs — so a search tool over bookmarks is really an exercise in prioritization, and it should encourage pruning or at least noticing what the tool surfaces vs. what it buries. It's also a natural place to discuss the tradeoff between keyword search (exact, fast, misses synonyms) and embedding search (semantic, slower to build, catches meaning).