What is a Zettelkasten, what are the advantages?
A Zettelkasten is a structured collection of notes. The Zettelkasten is a tool to approach complex ideas and concepts. It serves to support and structure one’s thinking about essential topics. Thus the note box can help to formulate and publish own thoughts.
Zettel is the German word for a small piece of paper, and Kasten means box. So a Zettelkasten is a box full of small pieces of paper. Therefore a Zettelkasten is often referred to as a slip box.
The idea of a slip box goes back to Niklas Luhmann (1927-1998) . An exceptionally productive sociologist measured by his publications. Söhnke Ahrens explained Luhmann’s approach in his book “Das Zettelkasten-Prinzip”  and contributed significantly to popularizing the concept. The book was translated into English under “How to take smart notes.“ Through this title, one can find numerous explanations of the methodology on the Internet.
Every single note, every single piece of paper meets the following criteria:
- The note is permanent. I.e., after we place it in the note box, we should not change it.
- We should write the notes independently. Especially we should not copy-paste from other texts. This step of reformulation makes the note part of one's thinking.
- The notes should be "atomic." So there should be one idea per note.
- We sort these notes one after the other so that they are arranged as trains of thought or along the lines of reasoning. It is vital that we can change that order easily. Therefore we must formulate notes without context. That is, each note must make sense on its own. Even after years, we must understand the text without referring to other notes. In this sense, notes are "context-free" and thus usable in isolation from each other. In particular, we should add citations to each note .
- We link the notes together. Navigating the various "stems of thoughts" in our Zettelkasten allows us to see new relationships between the notes. Reviewing the Zettelkasten may lead to unique insight and ideas .
- Only accept Notes in your Zettelkasten on Topics you deeply care about in years to come. We should think about each note on how to write it and link it. Notes you take while reading or notes on tasks or projects are not part of the note box.
When we follow the rules above, the note box enables the association between ideas and thoughts that one has encountered at very different times and in very different contexts. The Zettelkasten becomes a creativity tool.
Matt Giaro found a very apt quote from Mark Twain here :
"There is no such thing as a new idea. It is impossible. We simply take a lot of old ideas and put them into a sort of mental kaleidoscope. We give them a turn and they make new and curious combinations. We keep on turning and making new combinations indefinitely; but they are the same old pieces of colored glass that have been in use through all the ages."
-- Mark Twain
How to set up the Zettelkasten?
The Zettelkasten is not based on individual physical pieces of paper. We store each note as a Markdown file containing images, formulas, or code snippets. Thereby we build a digital form of the Zettelkasten.
We store the Markdown files in a simple folder with the following directory structure:
│ └── images/
The notes are contained in the "mycelium" folder. Here the order of the notes is shown by a naming scheme of these files. We store images in the folder "mycelium/images."
The folder "input" contains unfinished notes that do not yet have the necessary quality to be sorted into the note box (i.e., the folder "mycelium").
So technically, the Zettelkasten is nothing more than a collection of markdown files. Thus, the Zettelkasten is independent of applications or cloud offerings. Cross-device use can be achieved, for example, by creating folders on Dropbox. But we can also decide not to use the cloud. For Backup and versioning, we can use a versioning system like Git.
We use a strict naming scheme for the Markdown files to form the structure of the Zettelkasten
A typical name for a Markdown file could be, for example:
It sounds like a tedious way to name files but stay with me. We have some scripts to help you here.
The name consists of 3 components:
01_09denotes the location of the note in the Zettelkasten. In this case, the note is located in subject area 01 at location 09. So the file "
01_08_How_to_integrate_notes_into_the_note_box_e0d27e3ad.md" contains a thought that leads to the considered note. The files
01_10_ ...contain subsequent thoughts. A file
01_09_01_note_making_from_fleeting_notes_eb0a34faa.mdcontains a detailed thought about the note, which we could continue as a sub-discourse in the files
01_09_02_... In this way, when viewed in a simple file manager, the files are logically ordered correctly.
From_note_taking_to_note_making_to_communicating_with_your_note_box" denotes the name of the note. So that you can immediately see what the note is about without having to open the file, the file name should be as descriptive as possible. The name must always start with a letter.
1b6058a3ais a unique identifier of the note. This identifier is necessary to automatically correct references between notes after restructuring the note box.
This way, you get a good overview of the content and structure of the note box already when you view it in a file manager. No particular application is needed!
Structure of a single note
A note is a straightforward markdown file that starts with a heading. It can contain images, formulas, and code snippets.
Here is an example:
As we will see, some scripts will help you handle the files in the Zettelkasten and adjust the links between notes if you change the structure in the Zettelkasten. I open sourced these Scripts under https://github.com/rreben/tools4zettelkasten
Working with the Zettelkasten
Adding new notes to the Zettelkasten
I save my notes from books or articles I've read in Evernote or Zotero. I then go through these notes afterward and write down essential ideas as isolated, context-free text in individual Markdown files in the
input/ folder. Also, when I have an idea or insight during my workday, I jot down those ideas as individual Markdown files in the
At this step, I don't care about the file name yet. I name the file whatever is quickest.
I go through these markdown files and revise the text to be able to read and understand the note in isolation. I add source notes and formulate a clear, descriptive heading.
I then run a script using the command:
python -m tools4notebox stage
This command renames the files. The filenames now have the form:
0_0_How_to_integrate_notes_into_the_note_box_e0d27e3ad.md. Here, the speaking part of the file name
How_to_integrate_notes_into_the_box is derived from the heading of the file. The script generates a unique identifier and prepends the
Now I look at which place in the Zettelkasten the file fits. Let's assume that in the note box (folder
mycelium/), there are the following files:
Then the file fits between the
13 in the
01 strand of the Zettelkasten. I will then rename the file to
01_12a_How_to_integrate_notes_into_the_note_box_e0d27e3ad.md and move the file to the
The folder now looks like this:
In this way you can add additional notes to the Zettelkasten. The Zettelkasten could look like this after 3 more steps:
Let us have a look at this example: Another file:
01_12b_Working_with_alphanumeric_Ordering_en036a6bd.md has been integrated. With the files
01_12a_2_Integration_of_literature_notes_ec83f31a2.md a sub stem of thought has been created.
In this way, any number of notes can be arranged and sorted in any number of sublevels. The online archive for the Zettelkasten of Niklas Luhmann shows how Luhmann did this for 90,000 notes in his famous Zettelkasten .
Reorganization of the Zettelkasten
Instead of now having alphanumeric abbreviations like
5_16a_1n_... in my slip box. The classification abbreviations can also be canonicalized with a script.
We can rename the files with the command:
python -m tools4notebox reorganize
The markdown files are renamed. From:
This way, the structure always remains easy to read. Links between notes are automatically adjusted by the script so that the links still work after renaming.
With this mechanism, we can easily adjust the structure of the Zettelkasten.
Analyze the Zettelkasten
There are many discussions about the best structure of the note box. We group notes into strands of thoughts or lines of reasoning. This way, they are organized thematically about the alphanumeric sorting. We can easily find the notes we are looking for.
Maps like these can also be generated with the python scripts, that I open sourced on https://github.com/rreben/tools4zettelkasten