Note Workflows in Skrift

A look at different workflows for effectively working with a network of notes in my note app Skrift.

December 30, 2021

A few years ago I was introduced to the Zettelkasten note-taking method through the book “How to Take Smart Notes” by Ahrens (2017). The very short version, as neatly summarized by Fast (2020):

For a more thorough introduction, refer to the excellent “Introduction to Zettelkasten”.

A Zettelkasten is a personal tool for thinking and writing. It has hypertextual features to make a web of thought possible. The difference to other systems is that you create a web of thoughts instead of notes of arbitrary size and form, and emphasize connection, not a collection.

Before reading Ahrens’ book, I thought of myself as a compulsive note-taker, but all I had to show for it was a couple of half-empty paper notebooks and a dozen stale notes in a folder somewhere on Dropbox. It was mostly a write-and-forget kind of situation.

Armed with my newly found knowledge of how to take smart notes, I did what every technically inclined person would do, and started looking for apps that could help me write these smart notes. In my mind I was already imagining a holographic interface of some kind, but I was thoroughly disappointed. Then I did what every technically inclined person who can write code would do, and made my own note app, Skrift. This is what it looks like:

Skrift with a handful of notes and a search card open.

Network Traversal and Automatic Interfaces

When applying the Zettelkasten method, one ends up with a large number of atomic notes (Tietze 2013) that are densely linked to other notes. In other words, a network of notes. It follows that an app for working with these notes should make it easy to traverse that network, which in turn facilitates writing new notes based on the knowledge contained in the network.

Making traversal of the network easy is one of the core promises of Skrift, which is achieved by taking inspiration from tiling window managers such as i3. A tiling window manager automatically arranges the windows for the user, instead of the user manually moving windows around and resizing them, allowing the user to focus on the work they are trying to do.

i3 tiling window manager (source:

When the user clicks a link to another note in Skrift, the linked note will open in a window below the current note. Notes can also be opened in a new column, by holding Cmd or Ctrl while clicking the link. The interface adapts automatically as notes are opened and closed, much like tiling window managers.


This interface enables a number of workflows that can be used to effectively work with a network of notes. In the next few sections I am going to walk through how I (1) browse notes, (2) collect those of interest and (3) write a new note, referring back to those previously collected.


Browsing notes in multiple columns, each column representing a “branch”.

Often I do not know exactly which notes I am looking for. I might not even remember that they exist. So when I set out to look for notes, I often start with a structure note, a sort of table-of-content for a specific subject (Fast 2018). I will start with a breadth-first search, opening multiple notes in individual columns, surveying the landscape. If something seems interesting, I might do a deep dive, and click through multiple notes, opening each in a new row in the same column.


Notes can be collected in a new column.

As I find interesting notes that I want to refer back to when writing my new note, I need somewhere to collect them. A basket of a kind. In Skrift I do this by moving the notes to a new column on the left.


Ready to write. Collected notes to the left, new note to the right.

When I am ready to write my new note, I close all notes except for those that I collected in my “basket” and create a new note in a column to the right. As I write the new note, I can easily refer back to the notes I collected during the previous steps.

New questions might arise during the writing, something I had not thought of. This requires a new cycle of browse-collect-write, which can simply be performed in new columns to the right, while keeping the context of both the previously collected notes, as well as the note I am writing.

The Future

I have been using Skrift for a year and a half, and have written almost a thousand notes during that period. Occasionally I try another note app, but find myself unable to perform the workflows I outlined above. At least not with the fluidity I experience in Skrift, where a number of workflows can be combined, without losing the context.

At the same time, it feels very rudimentary. In the future I would like to explore more advanced versions of automatic interfaces for working with notes, and text in general. One direction I keep thinking about is the tablet, specifically the iPad, and what a network traversal-focused note app for that medium would look like.


Ahrens, Sönke. 2017. How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking for Students, Academics and Nonfiction Book Writers. North Charleston, SC: CreateSpace.
Fast, Sascha. 2018. “A Tale of Complexity Structural Layers in Note Taking.” Zettelkasten Method.
———. 2020. “Introduction to the Zettelkasten Method.” Zettelkasten Method.
Tietze, Christian. 2013. “Create Zettel from Reading Notes According to the Principle of Atomicity.” Zettelkasten Method.