Personal Project

Obsidian Plugins

Role
Plugin Developer
Company
Personal Project
Timeline
Ongoing
2
plugins in daily use
On-device
semantic search
ObsidianClaude CodeVS CodeGitHub
01: Semantic Search

Local-First by Design

  • Related notes in a growing vault stayed unlinked because nothing surfaced the connection.
  • Runs entirely on-device (transformers.js) — no cloud API, nothing leaving the machine.
  1. Rebuild-index reads every note, embeds it locally, stores the vectors in the plugin's own data file.
  2. Opening a note shows a "Semantic connections" panel, ranked by similarity, excluding notes already linked.
  3. Re-indexing only re-embeds notes that changed.

Root-caused a genuine environment-detection bug in a third-party library along the way, rather than working around it blind, and ran my own design-review process on the plugin's own interface before calling it finished.

02: Linked Mentions Inline

Solving the Same Problem, Differently

  • The opposite angle: backlink count instead of semantic similarity.
  • Once a note crosses a configurable mention threshold (default 10), its backlinks get written into the note body as plain wikilinks under a configurable heading.
  • Configurable heading text and folder exclusions keep it off notes like templates or daily logs.
03: Rationale

Why Two Tools, Not One

  • Same underlying problem, a note's real connections staying invisible as a vault grows, solved two different ways: meaning-based similarity vs. explicit link-count thresholds.
  • Reflects a broader pattern: build the tool that's actually missing, not adapt a workflow to whatever's already available.
Outcome

The Impact

  • Semantic Search

    runs on-device

  • Linked Mentions

    backlinks in the note body

  • 2 tools

    one problem, two angles

    Next case studySmplicare Fall Prevention →