My Zettelkasten setup with Obsidian and Zotero
I’ve been using the Zettelkasten method of personal knowledge management for two months now, and because I like it so much, I started telling other people about it too. I usually point people to this excellent primer, because ‘the book’ is quite long and, honestly, a bit hard to get through. After reading the primer, they ask me “how I do it” - which tools do I use, and how do I use them?
This is a blog post to answer their questions. If I’ve pointed you to this blog post and you have a question that it doesn’t answer, please let me know so I can add it.
Update 2022/05/08: Answered some additional questions, marked with 2.
So, how do you do it?
I use two tools for implementing Zettelkasten: Obsidian for my notes, and Zotero for my references. I use the Better BibTex plugin for Zotero (from here) to export the bibliography as a .bib file, and I use the Citations plugin for Obsidian (included) to read the .bib file so that I can immediately use my references in Obsidian.
In Obsidian, I have three types of notes: the ‘permanent notes’ (in the root directory of the vault), the ‘literature notes’ (in a separate directory called ‘Reading notes’) and an ‘INBOX’ note, which I use to write down stuff I want to process later.
In Zotero, I just put all my references in the main library. I have a ‘To read’ collection, which I use to keep track of references I want to read.
How did you set up the connection between Obsidian and Zotero?
I’m not sure which guide I used, but it looked a bit like this one, and I think that contains all the instructions you could need to set up the connection with the Better BibTex and Citations plugins.
Which other plugins do you use in Obsidian?
I’ve currently enabled the following plugins (in addition to the ones enabled by default):
- Backlinks (with ‘Backlink in document’ enabled)
- Tag pane
- Zettelkasten prefixer
- Random note
- Workspaces
- Citations (community plugin)
What do you use as a note identifier?
I use the Zettelkasten prefixer plugin to automatically prepend a timestamp to every note title. I find this works quite well as a note identifier.
Which hotkeys do you use?
I like the way Obsidian allows you to split the editor window, so I added hotkeys to split vertically (Ctrl+Alt+|) and horizontally (Ctrl+Alt+-). I also use Ctrl+R for ‘Insert Markdown citation’. I use Alt+(arrow key) for ‘Focus on pane (above/below/to the left/to the right)’, so that I can easily switch between notes (just like in the Terminator application).
What do you do when you find something you want to read?
I add it as a reference to Zotero, and I add the reference to the ‘To read’ collection in Zotero. If Zotero doesn’t contain the full text (either as a snapshot or pdf), I include a note with the reference where I can find the source.
Do you only put academic literature references in Zotero, or other references as well?2
I add everything to Zotero. I’ve even added references to individual episodes of TV series. It allows me to neatly separate reference metadata from note contents.
The one exception I make, is when linking to online tools (i.e. web applications). In general, I add web pages because of Zotero’s snapshot feature, but that becomes meaningless when I’m mainly interested in the backend functionality, which Zotero obviously can’t snapshot. For these, I just add the URL to the note directly.
What do you do when reading a source?
I open a literature note for the reference in Obsidian (Ctrl+Shift+O), and I write in my Obsidian INBOX note that I’m reading the source. While reading, I write down my thoughts on what I’m reading: important points I want to remember, parts where I disagree, trains of thought I might want to pursue later, anything. For each thought I write down, I add a page or paragraph number, so that I know where in the source it belongs.
Don’t just write down the things you want to add to your permanent notes. This literature note is what you’ll consult when someone asks you what you thought about this source, so make sure it contains your thoughts. For some books, I might jot down dozens of thoughts, for others, just a few.
After I’m done reading, I remove the reference from the Zotero ‘To read’ collection (because I’m finished reading it) and I update my INBOX note in Obsidian, stating the source should be processed.
What do you do when processing a source?
After I’m done reading a source, I walk through the thoughts I wrote in its literature note, to decide which thoughts I want to turn into a permanent note. The main question to decide this is, “Do I care about this idea outside the context of this source?”. If the answer is yes, turn it into a permanent note.
After I’ve written all the permanent notes I want to write, I remove the reference from my Obsidian INBOX note.
How do you write a permanent note?
A permanent note should be written in full sentences, with references. It should be atomic, in the sense that each permanent note should contain exactly one idea. This makes reusing the note in different contexts as easy as possible.
Where possible, make your new permanent note easier to find by linking it to other relevant notes, or by adding tags.
Tagging a note is about finding it later, not categorizing it now. So think about contexts in which you might want to consult the note. What are keywords that belong there? So if you’re a tax historian, you might tag a permanent note about taxation in medieval France with #middleages or #france, but not #tax and #history, because those are not specific to this note (from your perspective).
Don’t change your permanent notes after writing them. If there’s something wrong in one of your notes, write a new one and link to it. If there’s a link between two notes you want to add, write a new note that links the two. Your permanent notes aren’t a repository of just your current thinking, they provide insight into how your way of thinking came to be.
What titles do you give your notes?2
For literature notes, I just use the default from the Citations plugin, which is to use the citation key from Zotero.
For permanent notes, I use the note identifier, followed by a one-sentence description of the point the note is trying to make. This also helps me to ensure that I really only write one idea per note, instead of sneaking in several ideas at once.
How long are your notes? What is the minimal content of a note?2
A note should be long enough to explain the idea it contains, but no longer.
My shortest note is just “As an overview and introduction for beginners, nothing beats this post: [@clearZettelkastenHowOne2021] #zettelkasten”. Some of my longer notes contain several paragraphs.
How strict are you in leaving your notes unchanged?2
It’s more of a principle than a hard and fast rule. I’ve changed permanent notes to add references, links to other notes, or tags. I’ve also fixed a typo or two. The idea is that you maintain insight into how your thinking came to be. If your change doesn’t interfere with that, change away.
Having said that, do whatever suits you. As they say, it’s your party.
I’ve got lots of ‘island notes’, without links to others. Is that a problem?2
I’d say that it mainly speaks to the breadth of your interests. Especially when you start out, you’ll have lots of island notes. That’s okay. An island note is not a problem, and it should never be a reason to not write a note. What you’re trying to prevent isn’t island notes: it’s islands that should actually be connected.
How do you organize your notes?2
First, don’t design a structure beforehand. The idea is that the structure forms by you creating and linking notes. This allows for lots of links between areas that you wouldn’t have expected to connect.
Sometimes, you see a structure arising. That’s a good moment to create an outline note. An outline note is a permanent note that describes a part of your note structure, and that provides a point of entry into your thinking on that part. It doesn’t introduce new ideas, it merely shows how existing ideas are related.
Obviously, when you add more notes afterwards, your outline may become outdated. Add a note to update it, or create an entirely new one. Don’t forget to link to the old outline from the new one.
How do you find your notes? Am I allowed to use the search?2
Sure, if search works for you, by all means, use it. I do.
It depends on the note. Sometimes I use the search, sometimes I use tags, and sometimes I use links between nodes. I also like to use the ‘random note’ feature, because it allows me to confront an old idea with fresh eyes.
Do you also have permanent notes that aren’t based on a reference?
Yes, I sometimes think up cool ideas all by myself :). When I do, I add them to the Obsidian INBOX note, and I process them into a permanent note afterwards.
How do you keep track of your Zettelkasten to-do list?
If you neatly adhere to the workflow I described, your to-do list always consists of these two items:
- Check your Zotero ‘To read’ collection and read the sources referenced there.
- Check your Obsidian INBOX note and process the ideas and the literature notes of references you’ve finished reading.
How do you synchronize your notes and references between computers?
Both Zotero and Obsidian offer synchronisation services, but because I’m a privacy nerd, I don’t use them. I do recommend using them if you’re not comfortable running your own server(s).
Having said that, this is what I do:
- I have two computers on which I work on my references and notes. Both contain a Zotero and an Obsidian installation.
- I wrote simple synchronisation scripts for my Obsidian vault and my Zotero data directory. Both laptops sync to my file server. In order to prevent data corruption, the synchronisation scripts check whether Obsidian and Zotero are not running before syncing. This is mostly a consideration for Zotero, which uses an SQLite backend.
- I always run the synchronisation scripts before and after working in Zotero and Obsidian on one of the two computers. I never run the applications on both computers at the same time.
I also do a read-only sync of my Obsidian vault from my file server to my phone, using the FolderSync Pro app for Android. I can then read my notes in the Obsidian mobile app for Android. Zotero doesn’t have a mobile client, although there are some apps that apparently can access your references through the Zotero synchronisation service. I haven’t tried them.
Doing synchronisation incorrectly on your Zotero data directory will mess up your references. See the Zotero documentation if you don’t believe me (under “If you want to avoid syncing any data to Zotero servers”). If you mess up your data directory, you’re on your own. I can’t help you.
Reading long documents on my laptop is annoying. How do you do that?
I’ve written an export script for Zotero, which uses the pull export functionality of the Better BibTex plugin. It retrieves the references from the ‘To read’ collection, and syncs the attachments either to my e-reader or to a cloud service (so that I can read them on my phone).
Can I have your synchronisation scripts?
Sure. They aren’t very fancy or polished, and they are only aimed at my very specific situation, but if you’re looking for inspiration, contact me and I’ll share them. Do note that these are not plug-and-play scripts: they will require significant adaptation to your situation to be useful.