In short, a Zettelkasten is a method capable to store basic units of your knowledge, interconnect them, and produce new ideas. It is slightly different than a Personal Knowledge Management (PKM) system in its depth of processing the incoming information. It adds a layer of creation, so the information entering the system is not only meant to be stored, but ideally stored with the intention to have a useful purpose in building something new.

Although you can see all YouTube videos, read all books, and follow every blog about this topic, actually making it work is very difficult. In fact, I think doing all those stuffs is the biggest barrier one can face to succeed in building an effective Zettelkasten. In the beginning I watched countless videos on how to build it in the “perfect” way, tried several methods of organization and work-flows. However, nowadays I don’t use either of them.

I have come to learn with time that you cannot expect to create something great with small effort and in a blink of an eye. Everything requires time, patience, and lots perseverance. Implementing a functional Zettelkasten is, of course, no exception.

Where did it all started

I used to storage the tips and tricks I found useful in my hard drive, because where I lived the access to the internet was bad and scarce. So every time I searched for how to do something, I just downloaded the webpage or make a small note in a text file and saved it in a dedicated folder. But during the pandemic confinement I should have heard about the idea of PKM and Obsidian in YouTube, and started writing all new tech notes there.

With time, I got myself searching for the perfect work-flow and Application to manage my PKM system, and spent a lot of time seeing YouTube videos on the subject and tweaking the apps. I remember seeing all videos of Linking your Thinking, and other gurus the algorithm suggested me. Spoiler alert, I’m not using anything of that.

The perfect app

Changing the PKM system app was my sport. I changed from Obsidian to Logseq, and back, and forth, all in one day: there times in a single day.

In one hand, Obsidian was rock solid,1 it had many functionalities, and you could customize your work-flow from scratch. But, on the other hand, it is proprietary software. Logseq is free software, has a great built in work-flow with the journal pages, it’s an outliner app which makes easy to cross reference small ideas, has cards, etc. Nevertheless, the same outliner feature was uncomfortable for writing several paragraphs long atomic notes, among other limitations.

As I already used Emacs for coding, I tried Org-Roam for a while, and it was great. However, I got influenced (by the YouTube gurus) and bored, and started changing again, but this time not only between two, but three applications.

As you can imagine, during this time (actually months) my PKM had zero growth. Focusing on the application to build the system is always a waste of time. There are people successfully building theirs in all kind of apps, proving the app does not matter. The only thing you have to bare in mind all the time when starting is not to listen to those people already have succeed.

  1. Flip a coin and pick an app. Start writing your notes.
  2. In the mean time read the book “How to take smart notes” to improve their quality, but do not give it so much importance, just grab the general ideas.
  3. Probably seeing this video will help you to understand better why your default workflow is already the best.
  4. You are all set.

Build functionalities when the need for them growth organically from your everyday use. That’s the only way it will work. It is very unlikely that you can go from zero to hero with the setup of another person. You need to build yours step by step.

My suggestions to choose the app (as a person which has not yet definitively choose one) are:

  • A simple Zettelkasten, where you can implement your own functionalities: Emacs with Denote.
    • This is the closest approach to Niklas Luhmann’s Zettelkasten: just linking between notes and backlinks.
    • You can use Markdown, simple text file, and org-mode with all Emacs functionalities for your notes.
    • You can implement new functionalities in Elisp.
    • It lacks visual and mouse based functionalities for those who prefer to use them.
    • There is not visual notes map.
  • Still a simple Zettelkasten, but more complex code to add own functionalities: Emacs with Org-roam.
    • Link between notes and backlinks.
    • Uses a database to manage the relationship between notes, differently from Denote which is just Elisp functions to edit and read text.
    • Journal capabilities, and org-mode based notes.
    • It also lacks visual and mouse based functionalities.
    • However it does has a visual notes map. Though, it is another package.
  • More visual and user-friendly: Logseq.
    • It is free (as in freedom) software.
    • It has all kink of functionalities and it is visual and mouse based, but with keyboard shortcuts. There is also a plugin to use it with Vim keybindings.
    • A drawback is that the desktop app is Electron based.

In Logseq you have to be careful with the information you enter in the system. It has many functionalities and can be used in several different ways, but remember that everything that enters the Zettelkasten should contribute to build something, not just to be stored.

Atomic notes

In theory, a note entering the system should be atomic. This means that it is self contained and represents one and only one piece of knowledge. As the number of notes growth, and because of their interconnection, when looking for an idea into the system you will see what is related with an entry note, and following the rabbit hole you will face thought you had time before. This should help refreshing the memory on those old thought, apply them into current projects, and building new ones.

Achieve this is no easy task. When you are doing some work, you have to stop it to create the notes, which may need additional research, and many times triggers the creation of other notes. I have found myself working for ours in what was supposed to be a simple note. This happens because we let note taking consume as much time as it requires, and we should not. Note taking does not produce anything, so it need to be an activity we dedicate some small time each day, or each week. Most of our time should be expend in actual productive work.

In Org-mode there is a functionality which lets you capture anything, and you latter process it. You can also use a bullet journal for capturing new thoughts. These captures the can be converted into notes in a dedicated time to this specific process.

What did I end up using?

I ended up using Prot’s Denote with org-mode to manage the projects, and Logseq for the Zettelkasten/PKM system for a while. However, I progressively found myself ditching Logseq and going completely into Emacs with Denote.

What are the final conclusions

  • Just start!, and do it as simple as possible. There is no perfect workflow, and you will only lose time in its search.
  • Stick to the application you chose, others may have different functionalities but in the end it will not make a difference. In fact what will make the difference is sticking to one, as you will end up having some usable notes. My recommendations are Logseq and Denote (Emacs), depending in your level in Emacs and simplicity needs.
  • Build features on the go, but don’t ever spent time in trying to perfect the workflow. This is the hardest part, but just work.


  1. Without taking into account that it is an Electron app, and this may be a drawback. Logseq and Zettlr are also Electron based. ↩︎

⋇ ⋇ ⋇ ⋇ ⋇

Thanks for reading the post! Do not hesitate to write me an email, and share your point of view 😉: