Think
Think in writing, with notes that compound, so hard problems get easier the longer you work on them.
Start here
A Zettelkasten is a tool to think and write with, and I use every excuse to show programmers what it can do for them. Not sure whether it’s for you? If you don’t write code, start at zettelkasten.de; if you do, watch my talk first:
-
Zettelkasten for Regular Emacs Hackers
My EmacsConf 2025 talk: build your own thinking environment from linked notes, with examples and exercises to do right after.
Paths
-
Notes that link to each other, from Notational Velocity to The Archive, and what they're good for next to an LLM.
-
A Pattern Language for Zettelkasten
Recurring problems of a growing note archive, and the patterns that solve them.
-
Books I read and keep coming back to, with my notes on each.
-
Writing, outlining, and Org mode in the editor I spend my days in.
Tools
I made these for my own Zettelkasten. Use them for yours:
Apps
All appsWork with me
-
Set up a note archive and a writing habit that fit how you think.
Latest
All 931 postsWatch My EmacsConf Talk: Zettelkasten for Regular Emacs Hackers
The recording of my EmacsConf 2025 talk on building a thinking environment in Emacs, plus the Q&A and the script to follow along.
CLI for Your Notes in The Archive – Automated Zettelkasten (Usage) for Programmers
Exposing your notes with a CLI can help LLM’s and you both to discover connections. The tool I wrote for The Archive essentially offers a YAML API for my Zettelkasten.
Zettelkasten Productivity: Books Written per Books Ingested
Edmund Gröpl reframes writing productivity: it is not the mere output of books-per-person. Instead we should ask the question “how many books have grown out of what I’ve read”?
I want to get books on my Supernote and notes off it, so in my desperation I began to write scripts and make tools to help.
Zettelkasten for Programmers: Documenting Confusing with Swift.SendableMetatype
I got terribly confused reading the API docs on the SendableMetatype protocol. Because I do not yet know the solution, I want to share how I store this in my Zettelkasten for future problem-solving and discussions.