I searched for hours for a viable Zettelkasten method: org-mode, vim-org, TiddlyWiki, Roam, Notion, Joplin, Notable, Obsidian, Zettlr.
All of them were too complex, and not lightweight, cross-compatible, private/secure, or futureproof enough.
I decided to settle on the default MacOS editor using a mix of .txt/.rtf files, with extensive folder organization and the built-in tagging system.
I plan on consolidating journal entries into subject categories.
Example: let’s say I learn something about investing.
I write something brief about it in my \journal folder, tag it under investing, then maybe save a .pdf of the source to my \investing\temp folder.
Next, I add the new info to a note under the relevant category, such as \investing\ETFs.txt
Or, I create a new .txt/.rtf (depending my needs)
I believe tags are saved as metadata, so it should be cross-compatible.
For books, I’ll structure it as \library\broad_category
\book_name\chapter_n.txt, add the relevant folder tag, and maybe add an alias/shortcut in the relevant folder. I summarize key points under relevant files such as \investing\ETFs.txt
This seems like the best method to me, but I’m open to other strategies.
I'm confused as to why you find Obsidian not matching most those criteria. I heard about it here last week, and just installed it finally tonight, but as I understand it. It's just a bunch of markdown files in a folder on the local disk. That seems.pretty easy to access/convert, is private, is lightweight, and is future proof (I could write something in Perl to generate the graph in a night most likely).
I don't know anything about the others, since I haven't really used a note system before, so I can't comment on them. Your system seems to violate a few of your stated concerns though (is it cross compatible?), so I'm confused as to why you find it better.
there have been reports of Obsidian breaking and deleting notes when removing bidirectional links. I’m not interested in something that isn’t 100% failsafe when my notes are on the line.
That's worrying if true, but something hopefully they'll fix. I imagine deleting notes should be a fairly rare occurrence, so putting safeguards around it (such as a confirm, maybe moving note file to a trash location for later cleanup) is warranted.
Given what it is, it's probably safe and a good idea to make the vault on top of a versioned file system, even if that's a dropbox, google drive stream folder, or backblaze folder. It's probably not too hard to get a solution that's encrypted so it's more private as well.
I still think replacing the document creation markdown handling with Obsidian, which also shows back-links and lets you easily follow links, is probably much more useful and efficient than to use a regular text editor and manually curate the folders and tagging.
You probably want versioning in all cases (your manual method or Obsidian), and it doesn't negate the benefit of a system that scans and builds a graph of your knowledge provides.
One of the ideas that Sascha and Christian of Zettelkasten.de have espoused is not not giving too much structure up front.
At first I flirted with the idea of markdown files, and using something like an extension to Jekyll to resolve links and generate an HTML render of my zettel archive. But that's the same mistake I always make :) Way too much for what I need.
Like you, I settled on just using a text editor (sublime text and atom) with Markdown files. I don't plan to render them, I just like the syntax highlighting.
I think your proposed system captures the important part of the knowledge intake, ie two levels of abstraction (writing a source note, and then connecting the new knowledge from source note to (or just dumping it in) some existing node.)
But one other idea from Christian and Sascha is to avoid folder structures, and allow the organization to develop over time. On a work topic, notes from a few guidances and presentations, plus my experiences, cluster to create a note which transcends a categorical boundary I would have erected with a folder structure.
So, the suggested alt strategy is dump everything into one folder and create clusters using other structures, as they reveal themselves to be useful.
Would you mind sharing what caused you to abandon TiddlyWiki? I like the look of Notion and Roam, but I don’t like SaaS. I’m a few weeks into customising a TiddlyWiki instance and I am becoming quite committed to it. It seems to have the right balance of out-of-the-box functionality and customisability for me. But I am a little apprehensive about finding that it gets slow after a few years of use, or something like that.
Another TiddlyWiki fan here, I used to use DevonThink - which is pretty awesome, but less portable - it only runs on MacOS and has a barebones web frontend.
I could carry or host my OSX VM anywhere, and use VNC or such, but TiddlyWiki is much more portable as it is a self-contained html+js file running in the browser. I loose functionality, but there's search, tagging, linking and listing and a ton of plugins. It's good enough.
I used to think of the file system text file route as well, and there is this vimwiki, but as I'm used to browsing and looking up information in the browser TiddlyWiki is more convenient, and I can use SVG, mindmaps and diagrams. Emacs could be used to with the convenience of org-mode. There is also org-brain... all this is nice but is a bit more work and a bit less portable.
Regarding the potential slowing and bloating of TiddlyWiki, there is this filesystem plugin to link to local external images and documents. I use as much plain text, icons and svg diagrams as possible. I also segment several tiddlywiki's - perhaps at most 7.
Now I use:
* 'VR oriented development, which is very broad and can include WebXR, UE4, Quill, C++, C#, hardware, game development, cyborg antropology, psychology
* Spirituality (meditation, christian theology, hindu tantra and buddhist philosophy) and health
* Family and friends, non-violent communication
* Tasks, notetaking, journaling, habits - including shadow work journaling (semi-spiritual/psychological practice). Work or private related, there is no seperation.
Ideally TiddlyWiki could be mounted in a FUSE-like filesystem manner, more intuitive search operators or had built-in compression to make it even more speedy but it's good enough, just like my tweaked dvorak. Perfect doesn't exist. I don't complain, I love it! I can use it on my phone and on my Quest as well.
If one day my browser grinds to a halt due to a 20 Mbyte TiddliWiki I'll think of a solution then. I think at most I'm at 16 tiddlers a day on average.
Yeah, Roam looks exactly what I'd love to have, and I would pay a licence fee; however, I don't want my knowledge hosted somewhere else apart from my computer a my backup.
I'm using Tiddlywiki as well, but I haven't customized it much yet.
Regarding your fear of it becoming slow, the good part is that you can manipulate the tiddlers easily, so you could import them in another system, if you need to migrate.
Creating a hierarchy of notes using folders can be counterproductive. It will be easy to classify the majority of notes, but some of them will match multiple categories, or even none of them. Unfortunately, those notes are usually the most interesting. Case in point: I have some notes regarding good technical writing, and some notes concerning good Git usage. If I had a hierarchy, the first notes would go under "writing", and the second ones would go under "development". But where would I have filed the notes regarding Git commit messages? I feel like they belong on both categories. Choosing just one of them means ignoring the other. That's why, if you still want to classify some of your tags, I strongly advise to use a tagging system, and to avoid creating note hierarchies.
It can be way more simple: I use one folder for my notes, and another one for my "sources" (linear notes on articles, books, talks, etc). Files have unique filenames (guaranteed because a timestamp is added to the name when they are created). And there's no need for structure, because I open the files with Emacs using Projectile, so I can autocomplete the filenames. If I need to search the contents of the files, full text search is also accessible and quick. All note taking programs have these features, and you don't really need much more.
There are note taking systems that enabled that. Obsidian (from here a couple days ago) and Trilium both track links and backlinks, which can let you integrate that to a degree. It creates a web of information, as opposed to a strict hierarchical taxonomy. So you can link across those to hopefully maintain discoverability.
I generally dislike labeling systems. My interpretation of a label is too context-dependent and liable to shift over time. I.e. "architecture" could refer to either systems architecture or building architecture. And I frequently don't think that I'll have a conflict until some day I decide I want to learn about Napoleonic architecture for some reason. And then when I separate them, I'll end up forgetting what I called the label (was it systems-architecture? tech-architecture? application-architecture?) and I end up futzing around to figure out what the label was, breaking my flow of thought.
In the book "How to take smart notes" by Sönke Ahrens, there's a lot of thought given on the real value of tags. I'd say the problem you describe happens because you are trying to create a taxonomy using tags. Classifying the notes using tags can feel rewarding in the short term, but it's not useful in the context of a linked notes system.
When creating tasks, the main question that is answered is "in which contexts would I like this note to show up?". The answer to this question is completely subjective. If, for instance, you were doing research for game level design, it makes sense for the systems architecture notes to be tagged with "game engine", "achievements", "quick save", or anything else that you will want to look up later on. The Napoleonic architecture notes could be tagged as "level design", "gameplay cues", or "side quests".
As you can see, these tags would be different for every person, and that's kind of the point. Two people can read the same content, and take the same note from it, but the intended purpose could still be completely different, and that would show up in the tags.
I'm thinking of a similar approach with text files and collections of other file types like pdfs, images, etc as you note.
For tags, there are some packages for tagging I've come across like TMSU [1], taggo [2], dantalian [3]
I'm thinking of tagging by just having a tags folder with a txt file for each tag. You could just stick the path to files you want to "tag" in there. Then if desired, have a script to create a bunch of symlinks for a browsable tag file structure. Maybe even have some custom grep code to find specific keywords in my notes and "tag" them automatically
I use NoteSelf, which is a variant / add-on / expansion of tiddlywiki. It requires an accessible CouchDB backend hosted somewhere on the internet, but once that bit of infrastructure is setup it's almost universally accessible.
I've barely scratched the surface of tiddlywiki's features, but linking ideas together is easy, in that you can link individual "ideas" (in the form of individual articles, referred to as tiddlers) from each other, and it also supports tagging, and there are built-in scripts for iterating tiddlers with chosen tags.
> I searched for hours for a viable Zettelkasten method: org-mode, vim-org, TiddlyWiki, Roam, Notion, Joplin, Notable, Obsidian, Zettlr.
Org mode works well, but honestly what works the absolute best in my experience are actual slips of paper in a slipcase — or 'index cards,' to use the colloquial term. I find that physically writing words with a pen aids memory, and the little notebooks that I form over time (I punch a hole in each slip, and bind them together with a metal ring, and split bundles by topic when they get too unwieldy) seem to help too.
I number each slip when I create it, and when I need to reference it I just write [$NUMBER].
I started with a slip numbered 1. I add a new numeral whenever the topic is sufficiently different from any other topic. When a slip fits in with an existing topic, I insert it between cards, giving it a letter. So if 1 were programming languages, maybe 1a is Lisp. Then if I need to move a level down I just go back to numerals: maybe 1d3 is some notes on a Lua interpreter.
But I don't get too hung up on the numbers: as long as similar slips are just somewhat near one another, that's good enough. The goal is to accidentally run into similar thoughts (otherwise one could just number them sequentially, and not worry that card 1,467 is a Lua compiler and 1,468 is a recipe for mutton).
The problems with tags last time I searched were that they weren't really that robust, some file systems don't support them and the applications that manipulate files may erase them. Have you ever encountered such problems ?
I was concerned about that too, but I believe Macs at least guarantee tag syncing between other Macs. I may experiment with putting tags on the first line, but for now, I’ll have to rely on folders and my summarizations.
I may just settle for org-mode if I end up doing a PhD because, as the top commenters pointed out, Zettelkasten is meant to be a system to link ideas within the humanities.
However, I’m focused on my professional life right now. Most of my reading material is quantitative, so my current system is fine.
If privacy concerns you, you may want to take a look at:
https://twinkle.app/
macOS download is less than 10MB, so it should be a very quick evaluation.
All of them were too complex, and not lightweight, cross-compatible, private/secure, or futureproof enough.
I decided to settle on the default MacOS editor using a mix of .txt/.rtf files, with extensive folder organization and the built-in tagging system. I plan on consolidating journal entries into subject categories.
Example: let’s say I learn something about investing. I write something brief about it in my \journal folder, tag it under investing, then maybe save a .pdf of the source to my \investing\temp folder.
Next, I add the new info to a note under the relevant category, such as \investing\ETFs.txt
Or, I create a new .txt/.rtf (depending my needs)
I believe tags are saved as metadata, so it should be cross-compatible.
For books, I’ll structure it as \library\broad_category \book_name\chapter_n.txt, add the relevant folder tag, and maybe add an alias/shortcut in the relevant folder. I summarize key points under relevant files such as \investing\ETFs.txt
This seems like the best method to me, but I’m open to other strategies.