Short answer
Self-hosting a notes app gives you the server, not multi-user. "Shared" means four different things: replicated to your own devices, published as a link, granted to another account, or co-edited live under a permission. Most self-hostable apps do the first three, and the ones that co-edit properly usually stop storing your notes as readable files.
Self-hosting a notes app gets you a server. It does not get you a second person. Those are two separate features, and almost every app in the "self-hosted notes" listicles ships the first one well and the second one barely, which is why teams install one, put three people in it, and discover the gap a month later.
The word doing the damage is "shared". In a self-hosted notes app it can mean four different things, and the pages ranking for this query treat it as one. It can mean the same files replicated to your other machines. It can mean a public link out to the world. It can mean another account being handed your notebook. Or it can mean two people in the same note at the same time, with a permission deciding which of them is allowed. A team typing "self hosted shared notes" almost always wants the fourth and almost always ends up with the second or third.
Baalda, the app this site is for, is in the fourth group: an Apache-2.0 server you run yourself, with live multi-user editing over the same markdown files that sit on your disk. That is the claim this post has to earn against the alternatives, including the part where it is the wrong answer.
What does "shared" actually mean in a self-hosted notes app?
Sort the options by what the second person actually receives, and the field separates cleanly.
| What "shared" means | What the second person gets | Typical examples |
|---|---|---|
| Replicated | Nothing. It is your notes on your other devices | Syncthing, git, Nextcloud under Obsidian |
| Published | A read-only link, often to the whole internet | Notesnook Monograph, Memos public visibility |
| Granted | Their own account, handed a notebook or workspace | Joplin notebook sharing, Memos signed-in visibility |
| Co-edited | A cursor in the same note as yours, scoped by permission | Docs, Outline, Baalda |
Replication is where most self-hosted setups start, because it is the cheapest to stand up and it genuinely solves the problem of one person with three machines. It does not become sharing when a second person joins. There is no identity in a file replicator, so there is nobody to grant anything to and nothing to refuse. Two people editing one file produces two files. The three jobs people confuse when self-hosting Obsidian notes covers that failure mode in detail.
The jump worth understanding is from Granted to Co-edited, because that is where the app stops being a sync protocol and starts being a multiplayer application, and it is also where most of them stop storing your notes as files.
Which self-hosted notes apps give a second person their own access?
Three are worth looking at closely, because each one is honest about a different limit.
Joplin is the most common answer, and its sharing is real but coarser than people expect. Joplin's own sharing documentation states that for a shared notebook, "Currently they have full access to the data, including reading, writing, and deleting", and that "All the sub-notebooks, notes and resources within the shared notebook are shared". So the unit of sharing is a notebook and everything beneath it, and the default grant is full write. A read-only option does exist, as a "Can view" rather than "Can view and edit" choice, but it arrives with the Joplin Cloud Teams plan, which is the hosted product rather than the Joplin Server you run. Sharing is also desktop-only to initiate: the docs note that mobile and CLI users can view or modify shared content but cannot start a share. And because Joplin syncs rather than co-edits, two people in one note at once is a conflict to resolve afterwards, not a cursor you can see.
Memos is MIT licensed and trivial to self-host, and it is explicit that it is personal. Its README describes the model as "New memos are private. Make one visible to signed-in users or public when you want to share it", under the heading "Your thoughts, your data". Three visibility tiers, applied to your own memos. That is Published and Granted, not Co-edited, and the project does not pretend otherwise.
Outline is the closest thing to a self-hostable team knowledge base with real collaboration, and it is the one to read the licence on before you commit. Its README says plainly, "Outline is BSL 1.1 licensed." The Business Source License is not an open source licence. Its Additional Use Grant reads, "You may make use of the Licensed Work, provided that you may not use the Licensed Work for a Document Service", with a Change Date of 2030-09-09 after which the licence converts to Apache 2.0. For most internal teams that grant is fine. It is still a vendor holding a term that can be read differently later, which is exactly the thing self-hosting was supposed to remove. Outline also describes itself as "markdown compatible", which is a different claim from markdown-stored, and the distinction is the next section.
All three were read on 12 October 2026.
Does self-hosting mean the notes stay readable files?
No, and this is the part the listicles skip. Running an app on your own hardware tells you where the bytes are. It does not tell you what shape they are in.
Outline needs a database. Memos keeps memos in its own store behind a Docker volume. Notesnook's self-hosted stack, per its sync server repository, brings up MongoDB and MinIO. Docs, the MIT-licensed collaborative editor from France's La Suite, does the co-editing job properly with Yjs, "Real-time collaboration" and "Live cursors & presence" and "Granular access control" all listed in its README, and it supports Kubernetes, Docker Compose, Nix and YunoHost. Its markdown support is "Import to .docx and .md" and export to .docx, .odt and .pdf. Markdown is a door, in and out. It is not where the document lives.
That is the tax almost every co-editing app charges. Real-time editing is usually implemented as a CRDT, a CRDT is a binary structure, and the easiest place to keep a binary structure is a database row. Once your notes are rows, "self-hosted" means you own the backup rather than the notes. You cannot grep them. You cannot open one in another editor. You cannot point an agent at the folder. The migration out is an export, which is the same move Notion offers, just from a machine you pay for.
So the honest framing of this query is that you are usually asked to pick two out of three: run it yourself, have several people in it, keep the notes as files.
Why does end-to-end encryption make sharing harder rather than safer?
Because encryption and collaboration pull in opposite directions, and the encrypted apps are the most upfront about it.
Notesnook is AGPL-3.0 and genuinely zero-knowledge: its README states that it "encrypts everything on your device using XChaCha20-Poly1305 & Argon2". You can self-host the sync server, though the repository describes this as "self-hosting in alpha" and the README says "Self-hosting the Notesnook Sync Server is now possible, but without support". What you cannot do is give a colleague edit access to a note, because there is no sensible way to do that without handing over key material. Its sharing feature is Monograph, an encrypted public link, optionally password protected. That is Published.
Joplin hit the same wall and documented it. When notebook sharing shipped in Joplin Server 2.0 in June 2021, the announcement said that sharing works with end-to-end encryption on, "however any shared notebook or note will not be encrypted, otherwise you would have had to give your master key password to the people you share with". Joplin has since solved it properly, and the current sharing documentation says end-to-end encryption is supported for shared notebooks when both parties have it enabled. But the original sentence is the clearest statement of the trade anyone has written: the moment a second person has to read it, somebody has to hold the key.
This matters for the obvious downstream reason. An encrypted note is unreadable to an AI assistant for the same reason it is unreadable to the server, and running the server yourself does not change that. If you want an assistant over your team's knowledge, an MCP server needs something it can actually read.
Can you have the server, the second person and the files at once?
This is the specific problem Baalda exists to solve, and it is worth naming the mechanism rather than the slogan.
A note in Baalda is two things that have to stay true simultaneously: a .md file on your own disk, and a Yjs CRDT document that several people are typing into. Both are keyed to a stable doc_id rather than to a path, so renaming or moving a note never forks it, and a file-to-CRDT bridge keeps the editor and the disk in step in both directions. You edit the file in another editor and the change reaches your teammates. They type and the file on your disk changes under you.
Access is a folder ACL that decides which documents a client is allowed to sync at all, rather than a flag the UI checks after the fact. The grant has three modes, private, readonly and open, which read as No access, Can view and Can edit, and each can be applied to the whole vault, a folder, or a single file, aimed either at everyone in the org or at named users. That is finer than a notebook, which is the unit Joplin shares, and it is the same control per-file permissions on a shared vault describes.
The same ACL governs the assistant. Baalda's MCP server exposes 22 named tools, read_note, search_notes, edit_note, manage_access and the rest, and every call is re-checked against the permissions that govern people. An agent reaching a folder a teammate cannot read is not a setting you have to remember to turn off.
Running it yourself is one HTTP service plus Postgres, under Apache-2.0, with a Docker Compose bundle in deploy/compose and a one-click Railway deploy. There is no paid tier for self-hosting. The self-hosting docs have the environment variables.
Where is self-hosted shared notes the wrong call?
Three places, and two of them point away from Baalda specifically.
If the requirement is that the operator cannot read the notes, Baalda is wrong. Baalda encrypts transport, not content at rest. The files are plain markdown on disk and the server can read what it syncs, which is the direct cost of everything in the section above. Readable files are what make grep, another editor and an MCP server possible, and they are what make zero-knowledge impossible. If your threat model is the machine itself, run Notesnook or Standard Notes and give up the co-editing.
If you need a mobile app, Baalda does not have one. It ships for macOS, Windows and Linux. Joplin and Notesnook have phones covered and Baalda does not, and no amount of permissions model makes up for not being able to read a note on a train.
If there is genuinely one of you, do not run a server. A folder of markdown and Syncthing is free, has no database to back up and no upgrade path to maintain. The whole argument on this page is about what happens when a second person arrives. Until one does, the simpler thing is the better thing, and an open source second brain can be a directory.