DEV Community

Jace
Jace

Posted on

I Built an Open-Source Obsidian Alternative — Here's What I Learned

Obsidian is great. I used it for two years. But two things kept bugging me.

First, sync costs $50 a year. For a note-taking app. That stores plain text files. On my own devices. I get that they need revenue, but paying $50/year to sync markdown files across my laptop and phone felt wrong when I could rsync them for free.

Second, it's closed source. The plugin ecosystem is open, but the core app isn't. I couldn't fix bugs myself. I couldn't see how my data was being handled. And when features I needed weren't prioritized, I was stuck waiting.

So I built Noteriv.

What Noteriv Does

It's a full note-taking app — desktop (Electron) and mobile (React Native) — that covers most of what Obsidian offers:

  • Markdown editor with live preview and split view
  • Wiki-style [[links]] between notes with backlink tracking
  • Canvas/whiteboard for visual thinking
  • Flashcards built from your notes for spaced repetition
  • Mermaid diagrams rendered inline
  • Drawing editor for quick sketches
  • PDF annotation viewer — highlight and annotate PDFs inside the app
  • Web clipper browser extension to save pages as notes
  • Dataview-style queries to filter and display notes dynamically
  • Focus mode that strips everything except the editor
  • Custom themes — build your own or use community themes
  • Auto-sync across devices — no subscription, no cloud lock-in

The MCP Server — This Is the Part I'm Most Excited About

Noteriv ships with a built-in MCP (Model Context Protocol) server. If you use Claude, ChatGPT, or any AI assistant that supports MCP, you can connect it directly to your vault.

What that means in practice: your AI assistant can search your notes, read specific files, create new notes, and append to existing ones. I use it daily for development logging — Claude reads my daily notes and has full context on what I've been working on without me copy-pasting anything.

It's published as an npm package so you can install it independently too: npx noteriv-mcp

Tech Stack

  • Desktop: Electron + React + TypeScript
  • Mobile: React Native (iOS and Android)
  • Editor: Custom markdown renderer with syntax highlighting
  • Sync: Self-hosted sync server (Node.js), pulls first then pushes, auto-syncs every 5 seconds
  • Storage: Plain markdown files on disk. No proprietary format. Your notes are yours.

What I Learned Building It

Don't try to match Obsidian feature-for-feature on day one. I started with the editor and wiki links. Then added features based on what I actually missed. Canvas came later. Flashcards came later. The MCP server came because I was already using Claude daily and got tired of copy-pasting context.

Mobile is harder than desktop. React Native handles most of it, but the markdown editor on mobile needed a completely different approach to toolbar, keyboard handling, and gesture navigation. It took longer than the entire desktop app.

Sync is the hardest part. Getting conflict resolution right when two devices edit the same note is genuinely difficult. I went with a pull-first strategy — always pull remote changes before pushing local ones, with a 5-second auto-sync interval. It's not perfect but it works for single-user scenarios.

What's Next

  • Plugin system (so the community can extend it without forking)
  • Collaborative editing (real-time, like Google Docs but for markdown)
  • End-to-end encrypted sync option
  • Better mobile performance on large vaults

The whole thing is open source. If you're tired of paying for sync or want to see how your note-taking app works under the hood, give it a shot.

GitHub: https://github.com/thejacedev/Noteriv

Top comments (0)