YAOS
A 1-click deploy, real-time sync engine for Obsidian
Details
- External ID
- 47361635
- Source
- HN
- Company
- —
- Product
- —
- Website domain
- —
- Launched
- March 13, 2026
- Cohort
- —
- Upvotes
- 5
- Upvotes percentile
- 0.1070110701107011
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:26 p.m.
- Updated at
- Sept. 7, 2026, 9:26 p.m.
Description
Hey HN,I'm a heavy Obsidian user.I recently got tired of the two usual sync tradeoffs:1. File-based sync (iCloud/Dropbox/Syncthing) that leaves you waiting for changes to propagate, or hands you a "conflicted copy." 2. Self-hosted setups (like CouchDB) that need touching VMs and dockerized databases to sync markdown.So I built YAOS: a local-first, real-time sync engine for Obsidian.Self-hosting OSS should have better UX.You can deploy the backend to your own Cloudflare account in one click. It fits comfortably in Cloudflare's free tier (costing $0/month for normal personal use), and requires absolutely no terminal interaction, no SSH, and no env files.You can try it out right now: https://github.com/kavinsood/yaosHow it works under the hood:- Text sync uses Yjs CRDTs. It syncs real-time keystrokes and cursors rather than treating the vault as a pile of files to push around later. - Each vault maps to a Cloudflare Durable Object, giving you a low-latency, single-threaded coordinator at the edge. - The backend uses a chunked Checkpoint + Delta-Journal MVCC storage engine on top of the DO's SQLite storage. - Attachments sync separately via R2 (which is optional—text sync works fine without it).The hardest part of this project was bridging Obsidian's synchronous UI and noisy OS file-watchers with the in-memory CRDT graph. I had to build a trailing-edge snapshot drain that coalesces rapid-fire IO bursts (like running a find-and-replace-all) into atomic CRDT transactions to prevent infinite write-loops.The current design keeps a monolithic CRDT per vault. This is great for normal personal notes, but has a hard memory ceiling (~50MB of raw text). I chose this tradeoff because I cared more about fast, boringly reliable real-time ergonomics than unbounded enterprise scale.I also wrote up engineering notes on the tricky parts (like handling offline folder rename collisions without resurrecting dead files) on GitHub.I've spent the last three weeks doing brutal QA passes to harden mobile reconnects, IndexedDB quota failures, and offline split-brain directory renames.I'd love feedback on the architecture, the code, or the trade-offs I made. I'll be hanging out in the thread to answer questions!
Enrichment
- Theme
- interactive simulations and creative experiments
- Vertical
- —
- Function
- Workflow automation
- Audience
- B2C
- AI stance
- Not AI
- Project type
- Commercial product
- Normalized one-liner
- sync engine for obsidian
- Manually corrected
- False
Could you build this?
Partial Deploying a sync server with a web UI is standard, but maintaining conflict-free real-time synchronization for Markdown files across mobile and desktop Obsidian clients requires robust sync protocols.
What it would actually take: The architecture involves an Obsidian community plugin communicating over WebSockets to a lightweight backend (e.g., Go or Node) backed by SQLite/Postgres or S3-compatible storage. The difficult part is conflict resolution: implementing operational transformation or CRDTs (like Yjs) on raw Markdown text across intermittently connected clients, rather than simple last-write-wins file timestamps. This requires expertise in distributed data synchronization algorithms.
Discussion
6 comments analyzed.
Competitors mentioned: Obsidian Sync, Notion, Claude Code
Concerns raised: CRDT text-based approach fails with concurrent renames and link rewrites, Tombstone bloat in sync systems causes infinite loops with competing services, Machine-edits (like auto-updating internal links) turn CRDT edge cases into guaranteed anomalies, Folder-level CRDT map can explode in size, Offline cross-file structural changes like folder renames create vault-level consistency issues
Feature requests: Continuous-background-sync to resolve base convergence, Automatic daily snapshots with recovery UI, Epoch-fenced vacuum for tombstone garbage collection, File-based persistence layer using prolly-trees, Merge conflict detection via diff3 with intent fidelity
Competitors
Other products that read as similar to this one — 148 launches clear the similarity bar, closest 8 shown.
Attention rank: #137 of 149 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 132 days after the earliest competitor.
- Cc-md · hn · 2026-02-21 · 8 upvotes · similarity 0.55
- obsidian-mobile-companion · github · 2026-09-16 · 66 upvotes · similarity 0.49
- I made a browser TUI with its own layout engine · hn · 2026-07-07 · 6 upvotes · similarity 0.47
- obsidian-spaces · github · 2026-09-15 · 15 upvotes · similarity 0.46
- Files.md · hn · 2026-05-18 · 730 upvotes · similarity 0.44
- Numax · hn · 2026-06-16 · 6 upvotes · similarity 0.43
- Hibi · hn · 2026-09-21 · 6 upvotes · similarity 0.43
- Artifact Keeper · hn · 2026-02-06 · 166 upvotes · similarity 0.42
Other launches for this product
- No other launches for this product.