Obsidian on the web Using Prosemirror

Hi everyone,

I recently started using Obsidian for note-taking, but I noticed there isn’t an official or community web version!.

What if we built a simple, open-source Obsidian-like app for the web using ProseMirror?

  • Could be run locally, self-hosted, or in a Docker environment
  • Allow users to sync and access their notes from any device
  • Support linking to a local vault or importing files directly

I’d be happy to contribute or even start the project if others are interested. What do you think?

1 Like

This would be awesome. What do you see as the steps to get started?

1 Like

I believe CodeMirror would be a better fit for a project like this.

From Obsidian docs:

Obsidian uses CodeMirror (CM) as the underlying text editor, and exposes the CodeMirror editor as part of the API

1 Like

Hi there, Thanks for the comments and interest in this idea!

And yes @renato, CodeMirror looks like the better fit here, thanks a lot!

I was surprised to see how many people want a browser-version of Obsidian (like me), especially in this thread. From what I gathered, users mainly want:

  • Access from locked-down or unsupported devices (corporate laptops, schools, Chromebooks, Raspberry Pi, etc.)
  • Freedom to choose their sync provider (Dropbox, Google Drive, GitHub, etc.)
  • Self-hosted options (e.g. Docker) for full control
  • A lightweight web editor, even if not fully featured
  • To bypass corporate IT restrictions while still keeping notes private and accessible anywhere

The next big question is the data model:

  • Should we stick to atomic Markdown files (like Obsidian) and rely on cloud file storage for sync? If so, how do we handle indexing, graph previews, and CRUD performance at scale?
  • Or should we use a structured JSON/OPML model, which reduces file count and might make parsing/indexing faster?
  • Or support a self-hosted DB for storing notes, for faster queries and graph extraction, while still allowing export back to Markdown (or other formats)?

Small update on this idea since it’s been almost a year.

I ended up starting the project and have been working on it full-time for the last few months.

The current direction is a self-hosted, browser-based Markdown knowledge app where notes remain real Markdown files and vaults remain real folders on disk, while collaboration is handled through CRDTs.

So far I have:

  • Real-time collaborative editing working

  • CRDT-based sync for both note content and vault tree operations

  • Filesystem-backed vault storage

  • User management, roles, permissions, invitations, and shared vaults

  • Docker-first deployment

  • Some of stress tests and sync tests

The biggest thing missing right now is the MVP UI. I’m trying to get it into a usable state before making the repository public.

One thing that became much clearer during implementation is that collaboration for the file/folder tree is almost as important as collaboration for the note content itself, and at the same time treat the real vault files/folders stored on the FS are the source of truth, and also handles the external changes done outside the app, e.g rsync, git pull, or nano.

I’ll post another update once I have screenshots and an early alpha available,

thank you :slight_smile:

Most likely, the correct decision here is to keep real Markdown files as the source of truth. Coupling filesystem backed storage + CRDT collaboration + listening to external changes (git pull / rsync) gives you compatibility that a pure DB or JSON model usually struggles with.

The markdown is the easy part, it’s making sure the vault tree and indexing and graph state is consistent with concurrent edits and filesystem events. Sounds like you already found that folder collaboration is as important as note collaboration. A Docker-first, self-hosted approach with actual Markdown files feels much closer to what many Obsidian users actually want than a completely new data model.

Thanks @zooha34 , that’s pretty much the conclusion I’ve reached after implementing a large part of it.

The mental model behind the project is that your notes are yours. They live on your server as real Markdown files inside real folders that you can inspect, edit, organize, back up, or process with whatever tools you prefer—not just this app.

/vaults
  /my-vault
  /shared-vault

You can synchronize it with rsync, cd into a vault on your server, edit files with nano or another editor, git pull content, run scheduled backups, or upload snapshots to cloud storage. I wanted the vault to remain compatible with existing workflows rather than introducing a completely new storage model.

There have been quite a few engineering challenges around that area, especially when trying to support multiple users, multiple vaults, real-time collaboration, and external filesystem changes at the same time with a good performance. I’ll share more details once I have an early alpha