two tools, same notes, constant copy-paste. that's what broke me.
i've been on both Obsidian and Notion for a while. Obsidian for thinking — local files, graph view, plugins. Notion for sharing — databases, team pages, linked views. The problem: they don't talk to each other, and manually keeping them in sync is a tax you pay every day.
so i built obsidotion — a free Obsidian plugin that handles both directions.
what it does
upload vault → Notion: takes every local markdown file and pushes it to a Notion database. Existing entries get overwritten.
download Notion → vault: pulls a full Notion database and writes it to your local vault. Same overwrite logic — what's remote wins.
works cross-platform: Windows, Mac, Linux, Android, iOS — wherever Obsidian runs.
the interesting design call
i went with full-overwrite semantics instead of merge/diff. less glamorous, but a partial merge that silently drops a note is worse than a predictable overwrite. at least you know exactly what happened.
the tradeoff: if you've edited the same note locally AND in Notion, one version wins and one dies. a future problem, but an honest one.
stack
TypeScript plugin using Obsidian's plugin API + Notion's official REST API. There's an optional .env config that auto-copies build output to your vault path during dev — saves a few steps per iteration.
install
download the zip from Releases, drop it into .obsidian/plugins/obsidotion/. Or build from source:
npm install
npm run build
https://github.com/p32929/obsidotion
feedback welcome — especially if you have thoughts on incremental sync vs full overwrite. stars and forks appreciated.
open to building with sharp teams and solo founders — dms/email open.
Top comments (0)