After some initial struggles, I’ve decided to stick with Standard Notes for my personal text archive. That means peace of mind, knowing that I can access my notes anywhere and that whatever I write down will stay private, but it also means working with its limitations. Many of those limitations concern the possibilities for organizing notes. Standard Notes doesn’t offer folders, in-note search or linking between notes; on which I used to rely heavily for my personal knowledge base. It does however offer tags and ‘smart tags’, the latter including regex-search. That brings new possibilities, but it also requires an adapted workflow.
Disclaimer: this became a pretty long story. TL;DR at the end.
Living without in-note search
To be fair, in-note search is not entirely absent in Standard Notes. When using the global search, Standard Notes also searches within the notes. On desktop, the matches are even highlighted within the selected note. This is, however, a very limited workflow. For example, you can’t really find something within the note you’re currently working in. You’d have to use global search and then re-select the note you’re working in to see the matches. And when there are multiple matches within one file, the only way of finding those is scrolling through the document to find the highlights. Also, as noted, this only works on desktop, which is a shame, because whereas I do most of my editing on desktop, I use my phone all the time to consult and search my archive. For example, one day I wanted to find on which date I watched the first Star Wars movie, and Standard Notes on mobile only returned the ‘movies’ note, letting me scroll through hundreds of lines to find the movie myself.
The main solution to this limitation is to cut notes into smaller pieces. To stay with the movies-list as an example: in my previous workflow I would keep one text file with all the movies I ever watched and only create a separate note for a movie when I wrote a review about it. Using links between notes, I would then link the movie in the list to the separate note. That won’t work in Standard Notes. However, there’s a pretty easy solution: create a separate note for each movie, containing just the title and the watch date. Using tags (or other organization methods, which I will outline below) it’s now easy to pull up a list with all the watched movies, ordered by date. And whenever I want to write a review about a movie, the note is already there.
Linking notes with GUID’s
Now that works for my movielist. But what if I want to link other ‘smaller pieces’ to one of those movies? Let’s take Fight Club as an example. I referred to that movie in at least ten journal entries. And I have collected at least twice that amount of quotes from it. Lacking in-text search, I can’t add all those records to the movie-note, because it wouldn’t let me search (and TAG!) them separately. But I would still like to be able to easily pull up a list with all the thoughts and quotes associated with Fight Club.
This is where GUID’s (General Unique Identifiers) come in. Basically when note taking software offers inter-note linking, this is what they do: notes are given a GUID and the links in other notes refer to that UID. Whenever you want to pull up a list of backlinks, all you have to do is search for notes containing links to the GUID. As the Zettelkasten Method (link / link) has proven, you don’t need software support for that. Using this method, you could even achieve the same thing using pieces of paper (which is what the method was originally designed for) by creating those GUID’s yourself. (To be honest I even prefer it to most software solutions – for example those of Day One and Joplin – because they all use their own propriertary GUID’s, which are useless outside the app).
The version of the Zettelkasten Method as popularized by Christian Tietze came up with a timestamp GUID for each note (yyyyMMddHHmm
→ 202004070843
). Using a simple text expander, this timestamp can be easily inserted and used as a unique identifier for each note, no matter what software you are using. Using a timestamp makes sense, as it’s both unique (you can even add seconds if you want to be more precise) and allows for sorting your notes chronologically. As Christian writes:
Humans remember the time of an event well, so you should order material by its date. I wanted a quick and low-tech way to answer queries like “What did I do in Spring 2011?” – Preceding dates achieve just that.
I couldn’t agree more. However, I don’t like the 202004070843-form for a few reasons:
- It’s not very readable. When I see a note, I want to immediately know on which date is was written, not have to count characters to figure out which number is the day. So I changed it to:
2020.04.07
- There’s no categorization; it’s all just one big list. Now I know that’s kind of the point of the creator, because linking notes together should be a bottom-up process, not a top-down one. But to me, notes can be categorized at least in ‘main’ categories. And I prefer knowing at a glance whether the note I’m referring to is a thought, a movie or a quote I collected. So I prepended a letter to signify the category:
G.2020.04.07
- It contains four unnecessary digits. The time of a note is not relevant to me, it makes the GUID unneccesarily long and it’s not needed to make the ID unique. Whenever it does happen that both category and date are the same, I simply add a letter a-z to make the ID unique again:
G.2020.04.07b
And there you go: an ID that’s both unique and tells me at a glance that it’s a thought (gedachte, in case you where wondering) written on 2020-04-07. The improved readability also makes it easier to recognize often cited notes. When I see B.2015.02.24
, I know I’m referring to the Fight Club book. Try doing that with 200908092217.
Now I can simply add the ID to the beginning of the title of a note as follows: G.2020.04.07b Thoughts about Zettelkasten
. When I want to refer to it from another note, I do so by writing [[G.2020.04.07b]]
in the text. So when I search Standard Notes for the ID, I will find all the notes referring to my ‘thoughts about Zettelkasten’.
Separating drafts from final notes
With that, my quest seems to be more or less finished. However, I soon ran into another problem. As described above, I used to prepend movie titles with the date on which I watched them, allowing me to easily sort them chronologically. Something similar goes for books (date finished) and articles I’ve written (date published). The new GUID poses a problem for that method, because I also keep notes for movies, books and articles I haven’t finished yet. Now I could of course just use the date on which I add the note until I finish it, but that would create two new problems:
- The whole point of a GUID is that it’s a unique identifier for the note. You can’t just go and change such an identifier, that would break the whole system.
- The date loses its meaning as it becomes unclear whether it’s the added or the finished date.
I’m still not entirely sure about how to handle these situations, but for now I’ve come up with the following solution:
- Whenever a note is still ‘work in progress’ I will append the category letter with a label signifying the current state. For example:
B.active Name of the Wind
. The labels are (GTD-style):inbox
,active
anddone
. - The added date may or may not be included for reference after the label:
B.active 2020.04.07 Name of the Wind
. But it does not yet serve the purpose of a unique identifier. - Only when a note gets ‘archived’, I add the GUID and the note can be referenced.
- Until that time, I will collect all the ‘smaller pieces’ within the note itself.
This has several benefits:
- It separates my curated text archive from stubs that are still in progress
- It allows for sorting in-progress notes by current state. This is especially useful for media collections like books and music
- It makes editing notes in progress easier, because I don’t have to think about organization during the editing phase
- At the moment of archiving, I will give each piece its rightful place. Thus keeping the text archive clean and better serving its purpose as a knowledge base
Using (smart) tags
The Zettelkasten method could in theory work with only plain text files. You wouldn’t even need tagging functionality, because you could simply make a ‘topic’ page and refer to all the related notes from there. A more digital and widely used form would be to add in-text hashtags and using full-text search to find tagged notes. Both ways offer the same advantage: portability. If I would ever want to export my notes to another platform, it wouldn’t be easy to take Standard Notes’s tags with me. Topic pages or inline tags however, would always be there.
For now I’ve decided to stick with SN’s tags instead of these portable options. They’re just too easy to use, especially when using the Quick Tags plugin. But I might change my mind about this at some point.
As I mentioned before, SN also offers ‘smart tags’ or filters. These allow for querying notes by certain properties, thus providing quick access to searches. For now I’ve kept those very simple, just checking for the first B.
, etc.:
!["Boeken", "title", "startsWith", "B."]
But they could of course become as specific as you want, for example returning a list of books I’m currently reading, or listing all notes from a certain year. The good thing about the category-letters however, is that you could, but don’t have to use smart tags. I already find myself just typing B.2020
to quickly find a book I finished this year.
Also, I’ve added an ‘Inbox’ filter that shows all notes without any of the category-letters prepended:
!["@inbox", "title", "matches", "^(?!([A-Z]\\.([a-z]\\.)?(20|19|inbox|actief|klaar))).*$"]
Building your own Knowledge Base
This article was meant to show you how building a knowledge base in Standard Notes can be done. My personal use case (mainly collecting thoughts, books, quotes and media about life and tech) might be very different from yours.
One of the great things about a Zettelkasten-like system is its flexibility: you can design it in whatever way works best for you. If the time-based Zettel don’t work for you, simply come up with something else.
You can use any editor you like, markdown, plaintext or rich text, or mix them all up. You could even use Standard Notes’s Spreadsheets to create and keep track of topic lists. And even if someday Standard Notes would no longer work for you, you could just export your notes to plain-text files and continue working in any editor as if nothing happened.
TL;DR
- Because of SN’s limited in-text search, the best way to easily store and retrieve pieces of information is by putting each of those pieces in a separate note.
- These pieces can then be linked together by assigning a Unique Identifier to each note and referring to that ID from other notes.
- Choosing a useful format for the ID can drastically improve the navigability of your knowledge base. I’ve settled on the format
C.yyyy.MM.dd
where C is a letter representing the ‘category’ of the note, obviously followed by the date.