The hunt for a self-hosted notes system

To be honest, I love self-hosting tools. I think it has to do with my love of learning, but I digress. I know there are gobs of note-taking/sharing/synchronizing apps out there, many of them free, but they all lacked features, and I wanted to self-host.

What I Was Looking For

I wanted a note-taking app, with the following capabilities:

  • Self-hosted
  • Synchronization across devices
  • E2EE (end-to-end encryption)
  • Rich media note-taking ability
    • Markdown style note-taking
    • Image support
    • Code highlighting
    • Embeddable documents
    • Hyperlinks
    • Etc.
  • Web-based interface
    • Desktop and Mobile capable

What I Found

After searching the interwebs for a bit I ran across Trilium and Joplin.

Admittedly, I tried Trilium first, since it boasted a Desktop-and-mobile web platform which got rid of my need for synchronization. But after a few days, I decided to move on. Trilium is an electron-based application, and it just doesn’t work as well in the browser as it does in the app. I decided I’d give Joplin a try (and I’m certainly glad I did!).

Joplin for the Win!

Joplin is pretty much everything I’ve needed for this endeavor. It even comes packed with some extra cool features like the text-based Mermaid diagramming capability. It lacks a web app, but it does have iOS, Android, and Desktop apps, which work really well. Another feature I love is nested notebooks. This allows me to keep a running daily note, in a hierarchically way. See the image below.

Joplin nested notebooks.

Another great feature is the simplicity of sync and encryption. I’ve got a WebDAV server setup which runs over HTTPS and using E2EE, everything stays nice and secure.