it took me a while to get here and it’ll probably be outdated before I publish this post, but hey, you’ve got to start somewhere.

my requirements for a note-taking app/solution:

  • full-text search
  • as platform-agnostic as possible
    • iOS, macOS, web, Linux
  • text files, no format you can’t easily keep for years to come like google docs
    • attachments would be great, however
  • control of my data, meaning that I can access it at any time without being reliant on a 3rd party

using a service like notion or Evernote or even google docs would probably nicely give me most of what I want, except for the control of your data part, which is crucial for me nowadays. you just never know when a service goes away or they somehow lose your data.

if my data goes away I want to be responsible for that and don’t want to rely on some 3rd-party doing that. this rules basically every hosted solution out. they might provide ways to export data but that’s always a manual job and I want to have this automated.

I always end up with a bunch of markdown files in a git repository. I don’t mind pushing this git repository to a service like GitHub then since it’s still my stuff, under my control and I could just move within a few minutes to another service or host my own repo.

git, working copy, nvUltra

long story long:

  • put your notes in a git repository
  • use a text editor of your choice on your desktop
  • have a git client for your device
    • well, git for the command line on my mac
    • WorkingCopy is not only an excellent editor but also happens to be primarily a git client for iOS. win-win.

this gives you full control of your data, you have your data available offline, the apps I choose (working copy, nvUltra) support full-text search and also attachments into local folders.

the only downside, however, you need to sync the data on your own. meaning if you change, create or delete something within your repo you have to commit the data and push it into your repository. if you forget about that, you’ll get some conflicts back. they’re usually quite easy and fast to fix (most of the time even automatically) but that’s something to keep in mind.

if the last part could be automated in a good and easy way, this would be great. there are some solutions out there to monitor your file system for changes and so on, but I don’t want to commit every few seconds when autosave kicks in.

there you go!