Notesnook.
I was previously using Obsidian, which is great! but didn't like that it was closed source. I then went on to try various options [0] but none of them felt "right". I eventually found notesnook and it hit everything I was looking for [1]. It's only gotten better in the last year I started using it and just recently they introduced the ability to host your own sync server, which is one of the requirements it didn't initially make, but was on their roadmap.
[0] Obsidian, Standard Notes, OneDrive, VSCode with addons, Joplin, Google Keep, Simple Notes, Crypt.ee, CryptPad (more of a collabroation suite, which I actually really like, but it did not fit the bill of a notes app), vim with addons, Logseq, Zettlr, etc.
[1] Requirements in no particular order:
- Open source client and server.
- Cross-platform availability as I use Windows, Linux, Mac, and Android.
- Cross-platform feature parity.
- Doesn't fight me over how notes should be taken - looking at Logseq's lack of organization.
- Easy notes syncing.
- End-to-end encryption (E2EE). It's about to be 2025, if the tools you're picking up aren't E2EE, you're letting unknown strangers access your data and resell it. It doesn't matter what their privacy policy says as that can always change and/or they can get compromised/compelled to expose your data.
- Ability to publish notes.
- Decent UX.