Note-taking
I take a lot of notes. Random meeting notes, todos, diagrams or a quick note how the architecture of something should look like. I mostly use pen and paper. But sometimes a digital note is more convenient. There are many great note-taking apps out there and most support a general use case or one of the dozens of very specific note-taking workflows people swear by. Yet finding an app that works for me was not that easy.
I like to tell myself I am not that picky when it comes to note-taking. Most of my note-taking is analog anyway. Well, turns out I have some very specific requirements for digital note-taking that do not make it that easy to find the right solution.
Cross platform while I mostly use a Mac or iOS device as a client, I still want a cross platform solution. I am often carrying my Lenovo notebook with me when visiting clients in the industrial sector and I prefer my notes to be accessible.
Also just to put it out there. I really dislike Apple Notes and Reminders. Especially Reminders. The UI simply does not work for me. Also the concept of splitting todos and notes into separate apps is inconvenient for me.
Web access is another point on my list. This is negotiable, but having access via a browser is always nice. Sometimes I have some shell commands to copy around or logs to move from a to b and quickly creating a note is convenient. With a shell and SSH it is not too troublesome to work around this requirement for the rare occasions, but if web access is possible I will take it.
Offline capabilities are next on the list. While being always online is mostly possible for me, sometimes I am without Internet. Especially when I have more time to write or work through a backlog like on a plane. (Don’t get me started about Lufthansa’s WiFi quality on international flights.)
Backups to plaintext files are a nice to have. Plaintext never failed me, is easy to move around and access. Another well understood and easy to implement format would also be acceptable.
Attaching files or photos is basically a requirement. When I scribble down a quick architecture diagram I want to take a photo and add it to a note. In nine out of ten cases I will not bother creating a proper, digital representation, especially not when in the R&D phase of a project.
Self hosted is a hard requirement. E2E encryption exists and I would say is trustworthy in most applications. But I will not move my data outside my own network if I can prevent it.
API access would be very much appreciated. Not just to get my data out of the system or in, but also for simple things like a data pipeline if I ever decide to experiment with an LLM on top of my data.
There are some solutions I tried before ending up with the one I am now using for a few months. There are actually two noteworthy contenders I would suggest if you are looking for self hosted, end to end encrypted note-taking solutions. Just do not expect a well documented API.
Notesnook
Notesnook checks most boxes. And I think it has one of the best clients out there of all note-taking apps. It mostly resembles Evernote from what I remember Evernote looking like.
It is developed by a small team and they are gradually working towards self hosting. The server can already be hosted, but it is a bit of work and the server is still in alpha.
Additionally it uses MongoDB under the hood. I cannot stress enough how little I trust this “database”. Not just based on random tests, but also personal experience.
Standard Notes
Standard Notes is a staple in the note-taking world. End to end encrypted, cross platform and basically an editor “view” for any form of content you want to feed it.
Their server is decently easy to self host if you follow the guide step by step. The first time I tried I must have missed a step somewhere, but I could not find where when trying to debug why things were breaking for no apparent reason. Starting over fixed it.
You can unlock premium features on the server via an easy command. For the client you need a subscription. I am okay with that. But earlier this year Proton acquired Standard Notes. I think they are a good fit, but considering it is a commercial offering and that some questions around the future of self hosting and the offerings still seem to be open I prefer to stay away from it.
Honorable mention
plaintext: Most of my note-taking happened via regular text files for ages. Plaintext never failed me if the editor was good (read: vim and bbedit).
But getting plaintext to work on mobile is annoying at best. Most editors have their own idea of how text works. Accessing an SSH share or working with a git client adds extra steps.
It is possible but an experience I simply do not enjoy. And I tried many different solutions.
But this is not just a mobile limitation. The only desktop editor I do not hate for note-taking is bbedit, which is sadly macOS only.
Obsidian: If Obsidian would release their sync server it would have been a strong contender. But managing the vault, especially on iOS, is kind of annoying.
There are community plugins, but I would really prefer a first party solution. Even if it would be paid for. They need to make money somehow and paying for a sync server seems reasonable to me.
Something that did not fail me for decades also happens to check all the right boxes for note-taking. I simply send myself an email.
My inbox is usually empty. So when I send myself a note it is prominently on display. Once the thought, task, work stream or whatever the email is for is complete, I archive it. Email search works well enough for me.
It is also easy to append new information. And I mean append. It shows a stream of thoughts which I appreciate when coming back to month or year old notes to look something up. And you get timestamps for free.
Setting up Stalwart on a local server is comparatively easy if you are into self hosting. I already have an ACME server running, so having SSL enabled to make email clients stop complaining did not take much more effort.
IMAP is a well enough understood protocol. JMAP might make getting data out of the server easier, but I did not have a chance to play around with it yet. And with support for various DBs and even ElasticSearch it should be easy to integrate whatever I come up with.
I am using a shortcut to quickly trigger a note. I am playing around with various options like adding the geo location, setting the subject to something predefined string from a selection, but right now it is only two steps. And it works well.
What I was a bit surprised by was the state of webmail. Roundcube works. Not the nicest looking, no multi account support, but it works. As this is basically a fallback I am not too invested in finding an alternative. The ones I looked at were not as nice as Roundcube.
My notes server runs in my basement. As long as I have Internet and my VPN connection is working I have access to my notes. Otherwise clients have the notes downloaded and when an email cannot be sent it will simply sit in the outbox and wait.
Two months in
So far I am extremely happy with the setup. I did not look at it once and thought “this is stupid” or “I wish it would...”. It gets out of my way and does exactly what I expect it to do.
Considering I can still find emails from the late 90s and read them I am not worried about forward compatibility.
I already imported my old notes. I am invested. Time will tell if this was a good idea or not.
posted on Nov. 22, 2024, 8:11 p.m. in app, life, self-hosting