I have been using Roam as my primary note-taking app since January, 2020 and in that time I’ve accumulated thousands of notes. I love how powerful and simple the tool is. But in my initial enthusiasm, I didn’t think about how my notes would accumulate. So I ended up with thousands of notes, but no easy way of finding or using the vast majority of them. So I decided to start again with a new database, this time implementing a Zettelkasten-like system.

Introduction to Zettelkasten

What is Zettelkasten and why am I trying to implement it in Roam?

Zettelkasten is a writing and thinking process developed by Niklas Luhmann, a German sociologist who wrote 70 books and nearly 400 peer-reviewed articles in a 30 year career. He credits much of that success to an index card-based note-taking system he called Zettelkasten.

The process started by taking notes on the things Luhmann read. He kept one collection of notes to reference these sources, called Reference notes. The notes he took while reading would get turned into Literature notes: Luhmann’s summary, in his own words, of the author’s argument. When he collected multiple Literature notes on a topic, he would write a Permanent note to fully flesh-out an idea or argument.

Luhmann found ideas for what to write about while working through this process. When he had an idea, he would find related Permanent notes to build an outline and write a first draft. The process was easy and fluid, and is what made him so prolific.

In How to Take Smart Notes, the author, Sonke Ahrens, says that you know the system is working for you when it is easier to have ideas and to write about them as you add more notes to your Zettelkasten. Compare that to my experience with my first Roam database where I amassed over 3,000 notes but had no way of easily finding or using them.

I see a lot of new Roam users make the same mistake I did: assuming that Roam’s lack of enforced structure, when compared to Evernote or Notion, means that you should write and take notes without a system of organization. In reality, the fact that Roam doesn’t enforce a structure on you means you have the freedom to create and apply your own.

Zettelkasten, as a process, is a great option for that structure of your Roam database. The steps fit naturally into Roam and many of Roam’s features make the system even better than the original index card version. As there currently is no guide to using Roam as a Zettelkasten, walking you through how to follow the process, the purpose of this article is to provide one.

Getting Started

All you need to get started is a Roam database and some source material you want to work with. I suggest starting with a new database. It’ll be easier to integrate a new database with your main database later than it would be to separate it out.

Reference Notes

The process of working with a Zettelkasten starts with reading and taking notes. It’s as simple as highlighting or underlining the passages that you want to use in your writing. I suggest using a Kindle with Readwise for books and the Eloquent Chrome extension for articles and webpages. But your goal is to extract your highlights from a book or article so that you can start to work with them in Roam.

Taking and collecting notes from the things you read is the necessary pre-work to the Zettelkasten process. These notes then become part of a Reference note:

The goal of a Reference note is twofold:

  1. To record the reference information of a source
  2. To store the highlights from a source for later processing.

You’ll read through and process these notes in the next step. Storing them in Roam in the form of a Reference note makes this easier. It also makes keeping track of your sources easier when it comes time to write.

For each Reference note, I create a new page in Roam with a consistent set of metadata. Then, depending on the source, I copy or export my highlights into Roam. Here’s an example of a Reference note from my Roam database:

This Reference note is for an article by Tiago Forte, reviewing the book How to Take Smart Notes. You can see I have the author information and the link to the original source. I also extracted key passages from this article using the Eloquent browser extension. I haven’t written a summary for this note yet. At the top of the note, I’ve tagged it as a ‘Reference Note’ and in my Inbox.

I recommend tagging note types as a way of keeping them separate from each other. The emoji in the title makes this separation easier to see. The Inbox is where I keep links to Reference notes that I haven’t finished processing into Literature notes.

It’s important to remember that this is just a storage mechanism. These highlights are pretty useless on their own. It’s only when we work with these highlights that they have the potential to become something useful. This we do with Literature notes.

Literature notes

Storing Reference notes is just that: storage. Too many people stop at this step, exporting or copying their notes into Roam and then not working with them further. A key advantage of the Zettelkasten system is that it forces you to revisit and think about the passages you’ve extracted. You do this by creating Literature notes.

The goal of a Literature note is to briefly summarize a key point made in a source. You do this by:

  1. Writing your understanding of the passage(s) in your own words
  2. Being concise.

These are the only two rules you have to follow when it comes to creating Literature notes.

This is what that process looks like in my Roam database:


The page on the left is a Reference note for an article on Permissioned Blockchains and on the right is a Literature note I created from this Reference note. You can see here how Roam’s sidebar makes this easier to do.

I created this Reference note by copying highlights from Eloquent, like I outlined above. The note sat for a while before I came through to mine out Literature notes, so I applied progressive summarization to the article (the bolding and highlighting), though this step is optional. All you have to do is go back through the text of the Reference note and create a new Literature note wherever you see a key point you might need in your writing.

My Literature notes have some consistent metadata, including the source and any relevant keywords. The most important part of the Literature note is the body of the note. Here, I’ve summarized the original source’s definition of Permissioned Blockchain.

I created four Literature notes from this one Reference note:


If you keep following this process, then over time a body of Literature notes will accumulate around the topics you are interested in. As you accumulate Literature notes from different sources, you can start to cement your understanding of these concepts by creating Permanent notes.

Permanent notes

When you have a collection of Literature notes on the same topic but from different sources, then you are in a position to create a Permanent note.

The goal of a Permanent note is to fully elaborate an idea or a concept by drawing on multiple Literature notes. The value of these is then in connecting them to other Permanent notes. Over time, a web of well-formulated and connected pieces of knowledge forms. When it comes time to write, you simply pull from this web.

You should write a Permanent note as if you were going to publish it. You often can, but the true aim is to be able to drag and drop sentences or sections of these notes into the draft of an article, something Roam makes really easy with Blocks and Block References.

You can see a Permanent note that I’ve created here:

Despite being short, this Permanent note distills information from four Literature notes and is connected to one related Permanent note. You can see where I’ve used or referenced it in other notes in the Linked References section at the bottom of the page. I’ve also used the contents of this note in two other notes, which you can see from the numbers next to the blocks.

Using your Notes to Write

Writing with a Zettelkasten feels like magic because, when you’ve accumulated enough notes, producing an outline feels instantaneous. Casual walks through your database produce more ideas than you can keep up with.

To write, you need an idea and then material to populate the outline for that idea. There are multiple points in the Zettelkasten process where ideas can naturally occur and you’ll have material to support these ideas already. I come up with article ideas while creating Literature notes, while compiling Literature notes into Permanent notes, and when connecting a new Permanent note to existing notes.

When insight strikes, I act quickly and create a page for the idea:

I create type, summary, and related notes fields for every idea. The rest of the content of the page depends on the specifics for the idea. Here is the page where I outlined this article:

I’ve populated the Related Notes section with a few of the Literature and Permanent notes that I’ve made about the Zettelkasten method. I’ve then used these to create the structure of the outline. Populating a section is a matter of opening related notes in the sidebar and creating block references to relevant sections of these notes:

Parting Thoughts

If you contribute to the system consistently, then the value of your Zettelkasten compounds over time. The more well-written notes you have, the more new ideas you’ll have to write about and the easier writing will become.

Your first few months should be focused on adding content to your Zettelkasten and working it through the three stages. Try to build a habit of spending time every day to write and improve your Zettelkasten. Then, there will be a moment where you can have an idea for something to write about and produce an outline or even a rough draft in what feels like no time at all. This is the moment you know the system is working.

The sooner you start, the sooner you can reach that moment. Remember that the important thing is to spend time working on the system — every day if you can. Work on what feels natural or interesting in the moment. Don’t try to force material through the system, because what makes it all work is the compound effect of having well-written Permanent notes connected to other Permanent notes.

If you would like more information on implementing Zettelkasten in Roam, then follow me on Twitter, as I’ll be tweeting and writing more about this in the future. I also highly recommend picking up a copy of How to Take Smart Notes by Sonke Ahrens. The best thing you can do is to start and then adapt the process as you go.