Competitor research sweep: deep-dive on 8 clusters (#82-#89)#109
Merged
Conversation
added 3 commits
June 6, 2026 20:20
) Six focused write-ups under docs/research/competitors/: NotesHub, SilverBullet, GitJournal, StackEdit/HackMD/CodiMD, Obsidian, Logseq. Each follows the same structure (storage model, killer features, gap both directions, lessons tied to competitive-analysis.md priorities). Closes #82, #83, #84, #85, #86, #87.
Two surgical edits informed by the sweep in docs/research/competitors/: 1. Replace the "Closest competitors" table with a denser version covering all 8 clusters (same column structure), with pointers to the per-cluster files. 2. Add a "Lessons surfaced by deeper research" section with 10 bullets that did not exist in the original, each tied to a priority or backlog issue (#68-#79). Top recommendations are unchanged - the research reinforces them.
This was referenced Jun 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Eight focused competitor write-ups under
docs/research/competitors/,plus a surgical consolidation into
docs/competitive-analysis.md. Allresearch notes (not coding). Closes #82, #83, #84, #85, #86, #87, #88, #89.
Files added
docs/research/competitors/noteshub.md(Competitor research: NotesHub (closest direct rival) #82)docs/research/competitors/silverbullet.md(Competitor research: SilverBullet #83)docs/research/competitors/gitjournal.md(Competitor research: GitJournal #84)docs/research/competitors/stackedit-hackmd.md(Competitor research: StackEdit (+ HackMD/CodiMD) #85)docs/research/competitors/obsidian.md(Competitor research: Obsidian (the gravity well) #86)docs/research/competitors/logseq.md(Competitor research: Logseq (+ migration-refugee opportunity) #87)docs/research/competitors/privacy-e2e-cluster.md(Competitor research: privacy/E2E cluster (Anytype, Standard Notes, Notesnook, Joplin) #88, Anytype + Standard Notes + Notesnook + Joplin)docs/research/competitors/notion-alternatives.md(Competitor research: self-hosted Notion-alternatives (AFFiNE, SiYuan, Trilium) #89, AFFiNE + SiYuan + Trilium)Consolidation in
docs/competitive-analysis.md(same column structure), with pointers to the per-cluster files.
tied to priorities or backlog issues (Offline-first: IndexedDB vault cache + installable PWA #68-Performance: Zustand selector audit (useShallow) + memoize derived data #79).
"Top recommendations" is unchanged - the research reinforces it.
Three most valuable findings
No transparent per-hunk merge UI shipped. noteser's merge wedge
(Positioning: make the per-hunk three-way merge the hero #75 positioning) is intact; lead marketing copy with it.
positive signal, not a warning. It is direct evidence that
trustworthy sync + merge is an unmet need at the file-storage tier
per-hunk merge tab already address.
which sets a concrete bar for Performance: Zustand selector audit (useShallow) + memoize derived data #79. Acceptance: 5,000 notes load
under a second, search under 200 ms, sync does not refetch the
full tree on each pull (ETag from GitHub rate-limit hardening (ETags / conditional requests / batched reads) #69 + incremental Fuse.js index
updates instead of full rebuild).
Closes #82
Closes #83
Closes #84
Closes #85
Closes #86
Closes #87
Closes #88
Closes #89
Test plan
npm run lintpasses (docs-only change; suite still passes).npx tsc --noEmitzero errors.