My year with a Zettelkasten

An image of a graph of a few hundred nodes of different colours connected with lines.

- 14-minute read - 2889 words - by nori parelius

Table of Contents

Update: Here you can read how I abandoned Zettelkasten about a year after I wrote this post

It is almost a tradition for people who get hooked on Zettelkasten to write a blog post about it. After using it for a year, I think it is about time I followed this tradition and added my experiences.

I have always been a note-taker. I feel a strong urge to capture thoughts, events and ideas that are important to me. Over the years, I have been using a bunch of apps, paper notebooks, different kinds of files and folder systems to try to keep some order in my notes. No matter how hard I tried though, it always ended up being a mess, sooner or later. I think I sort of accepted that as an inevitable part of life. That notes were temporary – only good for helping me acquire the knowledge, but useless for long term storage. Now all of that changed with Zettelkasten.

What is a Zettelkasten

There are much better explanations of what a Zettelkasten is and how it works than I could put together here. One of the very best ones is Introduction to the Zettelkasten Method on zettelkasten.de, so if you want a proper in depth introduction, head over there. (zettelkasten.de is hands-down the best resource about all thinks Zettelkasten and they have a great forum too.)

In short, a Zettelkasten is a way of note-taking based on creating a network of interconnect thoughts/notes. It can be done both physically, the old-school way with a filing cabinet full of paper slips (Zettelkasten is German for “slip box”), or digitally with the many note-taking apps and software solutions available. The only things necessary are a way of uniquely identifying and finding each note and a way to implement bidirectional links.

Using index cards for note-taking used to be a pretty common thing. However, what most people mean when they talk about a Zettelkasten nowadays is a bit more specific.

Modern Zettelkästen (that is plural for Zettelkasten), are inspired by the work of Niklas Luhmann, a 20th century German sociologist who built a Zettelkasten of about 90,000 cards and used it to help him write over 50 books and 550 articles. He also wrote a book about his practice, called Communicating with Slip Boxes.

Sönke Ahrens brought new attention to the Zettelkasten method in his book How to Take Smart Notes, where he explains what a Zettelkasten is and how to use it.

The basic principles of a Zettelkasten

What makes a bunch of notes into a Zettelkasten, is 3 basic principles.

  1. Atomic notes.

    Each note should contain one piece of knowledge only. Now, personally, I find this principle to be the most difficult to follow, because I am often not sure what counts as “one piece of knowledge”, although I am getting better at it with practice. There is usually a sweet spot for how granular the notes can be and thanks to the flexibility of digital tools, it’s not that difficult to split up notes that have grown a bit too much. The note atomicity is important to facilitate the second principle, which is:

  2. Links between notes.

    You make links between notes by referencing them. It’s sort of like a wiki, but with atomic notes. This way, it is possible to link to one note from many other notes, making connections between loads of different ideas.

  3. Writing with own words.

    The last principle is about writing the notes with your own words rather than copying straight from the source. This forces you to process the thoughts, and to make them your own. It is also important to write the notes “properly”, so they can work on their own. You need to have the audience in mind, which in this case is your future self that has forgotten everything about this idea.

A system meant to grow

My problem with notes has always been that at some point they become unmanageable. Truth is, I didn’t have much of a system at all. I tried to organise them, of course. Folders within folders of difficult to navigate hierarchies always inevitably became a mess where finding whatever I was looking for was almost impossible.

For me, notes were mostly a learning aid, I used them to prepare for exams and finish projects, but once that was over, they would lie forgotton. Whenever I would try to get back to them months or years later, needing to refresh some of that knowledge, I found them too telegraphic, not giving enough context and explanations, lacking, disorganized and hard to navigate. I would usually toss them at that point, disappointed over the waste of time and effort that went into taking them.

When I first heard about Zettelkasten last January, I was intrigued. Now, a year and almost 500 notes later, I can say it works.

Instead of trying to organise notes hierarchically into hard-to-navigate folders, all of my notes are in a single folder. Instead of trying to write notes as comprehensive as possible, each note is dedicated to one thought – one idea, that I try to capture as best I can in the title.

It is easy to make a new note, because I don’t have to immediately think about where to file it. It simply goes into The Folder. It is equally easy to find it later by a simple keyword search of the files.

My previous methods to organise notes were rigid, top-down approaches trying to fit things into a predetermined structure. The moment something unexpected showed up, the structure had nowhere to grow, the only thing I could do was tear it down, redesign the structure, and start again.

A Zettelkasten, on the other hand, only gets better with more and more notes. There is no predetermined structure, no hierarchy, all the notes are on an equal footing, as are all the ideas and topics. The structure emerges on its own from the notes themselves. If we really are learning, what we learn is bound to surprise us. Trying to define a structure for our note collection beforehand is like trying to come up with a conclusion before we did the research. That is at best inconvenient and at worst deeply unscientific. A Zettelkasten allows us to capture all that is relevant to a topic, not only what fits the predetermined narrative.

A Zettelkasten grows organically, bottom up.

A place to think

As I already talked about in a blog post about my reasons for blogging, David McCullough said “Writing is thinking,” and I very much agree. Putting words to paper (or even just saying them) forces us to give the thoughts and ideas actual form, taking them from the level of abstract possibilities into reality. Sometimes I feel like I need to write to even find out what exactly I am thinking.

A Zettelkasten is a perfect companion where a lot of this writing/thinking can happen. It demands that I formulate my thoughts clearly, trying to extract the atomic ideas from whatever I am thinking and express them fully in my own words.

The magic of Zettelkasten is in the links though. Making sure that a new note gets integrated into the network means I have to think about it in context, look at related ideas, write about the connections between them and revisit old notes. It allows my present me to interact with what my old me has been thinking and writing.

A lot of the thinking happens in the so-called structure notes (or map-of-content notes) where we can bring together a number of ideas and connect them into something new, linking to the individual notes. These notes allow us to take a step back, look at the bigger picture and integrate ideas rather than breaking them down.

Zettelkasten is a real Memex

Memex – short for memory expander – is a fictional machine from a 1945-book “As we may think” by Vannevar Bush (which I haven’t read, actually, just heard about). Memex organises a user’s thoughts and semi-automatically brings related ideas together. A number of bloggers were inspired by memex, among them one of my favourites – Cory Doctorow (his blog post about The Memex Method). Memex might be fictional, but Zettelkasten does what memex sets out to do. It is a way to organise one’s thoughts and provide a framework for connecting them.

The godfather of Zettelkasten, Niklas Luhmann, talked about his Zettelkasten more as a writing partner than a mere tool. One would almost get the impression that his Zettelkasten was alive.

At this point, my Zettelkasten has almost 500 notes, and I have been using it almost daily for a year. Despite that, I am definitely still just a beginner Zettelnaut (a wonderful word that, as far as I know, comes from Will at the zettelkasten.de forum). My Zettelkasten is very much not alive, but I can imagine that when it grows to several tens of thousands of notes, it would hold more than my brain is capable of, and then it would surely have some surprises for me. I am already looking forward to that.

Making a mosaic

For me, reading books has become so much more intentional. That is where the majority of my Zettelkasten inputs come from. I read, and I take notes and I connect the new ideas to the old ideas, finding unexpected connections that deepen my understanding and refine my thinking. And it’s fun (I think we have already established that I have weird ideas about fun).

I find Zettelkasten to be freeing, because it lowers the threshold for taking notes. I don’t have to think about where to put the note, or whether it is important enough to write down. Time will tell. That is one of the most exciting things about a Zettelkasten – seeing where my interests are. It is like watching topics crystalize out of the dense soup of ideas, or grow like mushrooms from a rich mycelium, or like images showing themselves when you take a step back from painstakingly building a mosaic.

Who is it for

I do enjoy working with my Zettelkasten and find it useful and enriching. But I don’t think everyone needs one. Zettelkasten requires a fair amount of work, and it is not a magic pill that will output great new ideas on its own. In the end, it really is just a way of taking and organising notes.

I think it can be a great tool/companion for anyone doing research, be it scientists, non-fiction writers, journalists, students or bloggers.

Update: Here you can read how I abandoned Zettelkasten about a year after I wrote this post

My Zettelkasten set up

This last part is very much only for people who want to start a Zettelkasten and are curious about other people’s set up. I know I was, when I was starting out. The most important thing I can say though, is that you do you.

When setting up my Zettelkasten, I followed these principles:

  1. Principle precedes procedure.

    I wanted to make sure that how I do things and what I do isn’t decided by the tools I have available, but rather by the principles I want to implement (such as the Zettelkasten principles). You wouldn’t first get a hammer and then go around looking for things to smash with it.

  2. Prioritise longevity

    The idea of having one Zettelkasten for the rest of my life really appealed to me (I am like a dragon, I like to sit on treasures). Trying to increase the chances that my notes will survive half a century is not completely trivial though.

  3. Keep it simple

    A principle on its own, but also a consequence of the previous two. Keeping it simple to make it as easy as possible to take notes, maintain the system, move it to a different software and so on.

I started my Zettelkasten in Obsidian and within two months moved it to org-roam in Emacs. I still think Obsidian is a great piece of software and there was nothing wrong with it. The reason I switched was that I wanted something non-proprietary and open source, and something that might survive for a while. Emacs gets a lot of extra points for the longevity.

Another reason I left Obsidian behind is the amount of cool plugins it provides. While they were very tempting, I ultimately didn’t want to be adding unnecessary complexity to something that can (and should) be fairly simple.

When I switched to Emacs, I was an Emacs newbie and the learning curve was steep and fun (as I said, I have a weird idea of fun), but also absolutely maddening and at one point I was even wondering whether everyone who claims to like Emacs is just a victim of Stockholm Syndrome and Sunken cost fallacy. Anyway, I got over the hump, set things up the way I like them, and haven’t tinkered ever since.

Would I recommend Emacs to others? Well, if you have some coding basics, love to tinker, are stubborn as hell and like to disappear into rabbit holes, then maybe. If not, there are a lot of nice Zettelkasten software solutions that work with plain text files, so if you are worried about longevity, you know that you can still open your notes if your software disappears. One thing to remember though might be to try not to rely on super fancy features that you might not find elsewhere.

To reduce friction of creating notes and of possible future software transfers, I am trying to keep my metadata to a minimum.

I use a datetime stamp in the title of the note files, which tells me when the file was created. All my zettels are in one folder only, but I have two additional folders, that are adjecent to the Zettelkasten, but not quite part of it. I call these inputs and outputs.

Inputs might be called “fleeting notes” by some. In my workflow, these are the files where I take notes from whatever I am reading or watching. I will use one file per book, for example, so these notes are not atomic in any way. Then I go through them and extract the ideas that I want to make proper zettels out of.

My Zettelkasten is for me only, and would probably provide little value for anyone else. Whenever I want to make something for others, I put the draft into the “outputs” folder, where I can still link to the proper notes, but hold these compositions separate.

I am not much of a tagger, and other than #MOC (for map of content), I don’t use other tags. Yet. Instead, I rely on links and structure notes (MOCs) to help me find things and orient myself. Categories provide only weak associations and things like tags don’t scale very well. Sooner or later, you will find yourself with too many tags and too many notes per tag. But we will see, maybe there will come a time when I will decide to add tags to my zettels.

I use pretty much a standard org-roam setup for my Zettelkasten, with quite a few elements inspired by the org-roam setup of Jethro Kuan who made org-roam.

I use Zotero to keep my references and Better BibTex to export them into a single .bib library. To then insert the references into the notes, I use citar and citar-org-roam packages.

I use capture templates for zettel, input, output and reference notes. A reference note is an input note that is linked to a bibliography entry. The capture template will put the note into the correct folder, create a filename with a datetime tag and put the title into the note. The filename also includes -I- for input notes and -O- for output notes and the capture template adds an “input” or “output” tag to input and output notes.

;; ORG-ROAM
(use-package org-roam
	     :ensure t
	     :custom
	     ;; setting up the directory
	     (org-roam-directory "~/Documents/TheNotes/")
	     (org-roam-completion-everywhere t)
	     ;; org roam capture templates
	     (org-roam-capture-templates
	      '(("d" "default" plain
		 "%?"
		 :target
		 (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
		:unnarrowed t)
		("z" "zettel" plain
		"%?"
		:target
		(file+head "zettel/%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}")
		:unnarrowed t)
	       	("o" "output" plain
		"%?"
		:target
		(file+head "output/%<%Y%m%d%H%M%S>-O-${slug}.org" "#+title: O-${title}\n#+filetags: :output")
		:unnarrowed t)
  	        ("i" "input" plain
		"%?"
		:target
		(file+head "input/%<%Y%m%d%H%M%S>-I-${slug}.org" "#+title: I-${title}\n#+filetags: :input")
		:unnarrowed t)
	        ("r" "reference" plain
		"%?"
		:target
		(file+head "%(expand-file-name \"input\" org-roam-directory)/%<%Y%m%d%H%M%S>-I-${citekey}.org" "#+title: I-${citekey}\n#+filetags: :input")
		:unnarrowed t)
		)
	      )
	     :bind (("C-c n l" . org-roam-buffer-toggle)
		    ("C-c n f" . org-roam-node-find)
		    ("C-c n i" . org-roam-node-insert)
		    ("C-M-i" . completion-at-point))
	     :config
	     (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:20}" 'face 'org-tag)))
	     (org-roam-db-autosync-mode t)

	     )

This part modifies the display template to show the tags associated with the note.

(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:20}" 'face 'org-tag)))

I use a completely standard setup for citar:

;; CITAR
(use-package citar
  :ensure t
  :custom
  (setq org-cite-global-bibliography "/home/nori/Documents/TheNotes/biblio.bib")
  (citar-bibliography "/home/nori/Documents/TheNotes/biblio.bib")
  (org-cite-insert-processor 'citar)
  (org-cite-follow-processor 'citar)
  (org-cite-activate-processor 'citar)
  :bind
  (:map org-mode-map :package org ("C-c b" . #'org-cite-insert))
  )

Citar org roam allows me to use my roam capture template to make a note from a reference. When I run citar-open, I can choose a bibliography entry for which I want to create an org-roam note following my ‘reference’ capture template.

;; CITAR-ORG-ROAM
(use-package citar-org-roam
  :ensure t
  :after citar org-roam
  :no-require t
  :config
  (setq citar-org-roam-capture-template-key "r")
  )