Current state of my note-taking app

Things of note:
* Operates on a hard-coded directory of text files.
* No overlapping, no tiling, just an infinite 2D surface of columns. Commands open new columns.
* Wordstar-style menu up top of important commands in current context, and their shortcuts.
* Command palette at top left that filters commands available in current context.
* Files/nodes can have links. Links can form graphs, as the picture shows (original:


* Links have labels (next/previous by default).
* Graph-traversal commands can take an argument (next/previous by default) of the edge label you want to follow.
* 'add' adds an edge immediately to the current node, 'append' traverses the edge repeatedly to the end, then adds.
* 'step' navigates along an edge from the current node and opens it in a new column, 'unroll' traverses the edge repeatedly to the end and collects all nodes into a single column.

add:append :: step:unroll

the single/recursive command thing is really intriguing right off the bat.

Did you already find some interesting edge-labelling patterns that lends itself to? I guess the obvious one it's designed for is using "next" only between siblings in a hierarchical document so you can [unroll] them, but is there others?

@s_ol I don't have much of a vision yet, I've been mostly trying to port over my terminal based workflows until I can do everything within this app.

One thing I often do is go back to an old note and add a digression in the middle of it. For the past few years this has gotten more common but I've had nothing better than to just put some brackets and start writing within them. As a result I never have a second level of digression. Maybe I will with a better tool/representation?

@s_ol Now that I think about it, has also been on my mind.

Lots of apps these days use a graph to visualize a network of nodes. But it's just eye candy. I wonder if there's a way to make graph visualizations more useful. Allow a spectrum been seeing a single thing and seeing all the things. Lots of perspectives may help the brain make sense of the graph.

@s_ol I want to make it easy to put any two notes on the screen next to each other. Without having to manage file names. I use file names a lot on the terminal.

I also want to try to build an app that feels very stable, moves very little, while dealing with an artifact that can't actually fit on a screen. This is a Christopher Alexander influence:;

Nice. Colin is on mastodon too btw: @ColinTheMathmo

I've tried building a more comfortable UI along the lines of the system from the HN post above, but the last point you brought up is the hard one here - I couldn't find any tools for *incremental* graph layout so that the graph can stay locally stable as new notes are added and I don't have the graph theory chops to implement something like that myself.

@s_ol Still working on that ... I have more ideas now, and am slowly acquiring the skills to experiment.


@ColinTheMathmo @s_ol I'm curious to hear more. I didn't realize SVG supported links! Now it feels like a much more interactive medium.

Have you considered adding relative links to parent/child, etc. Chartodon needs it less than HN, but arrows can still get a bit long. And you have this whole new element of horizontal scrolling that I struggle with.

Have you thought about keyboard shortcuts at all? That might require going past SVG?

@akkartik I think this platform has gone as far as it can. Based on what I've learned with Chartodon and DiscDAG, I'm investigating how to create a better browsing experience.

A few things can be done fairly quickly, such as folding descendants, and folding ancestors, but a richer experience requires a different underlying tech.


@akkartik One of the underlying problems is the inability to render the page with a specific node in the middle. That's a *major* problem with DiscDAG, and solving that would solve a lot of problems.

But if this is to go forward I think a re-implementation is inevitable.


@ColinTheMathmo Ah, I just found Couldn't find the link somehow the first time you mentioned it. Is/was this a new, first-class place to have conversation?

@akkartik Hiya,

I've added you to the Users and to the discussion you requested. I've also given you the ability to create and delete links, and to create discussions.

With great power comes great responsibility.

You may want to browse this:


@s_ol Whoa, I've seen stuff by @ColinTheMathmo but hadn't connected the dots that I was talking to the same person across accounts!

@akkartik You might also want to see and play with my DiscDAG experiment.

CC: @s_ol

@akkartik It reminds me of TiddlyWiki, except it's in two dimensions. I kind of like it, actually. Would you object to me borrowing and playing with the concept in a future editing environment I'd like to write someday? (Yeah, a very open-ended, long-term project that is poorly defined at the moment, but...)

@vertigo Oh absolutely, steal away.

For reference, I stole a lot of the ideas for the command palette from by Philippa Markovics and others at Nextjournal.


Your chart is ready, and can be found here:

Things may have changed since I started compiling that, and some things may have been inaccessible.

In particular, the very nature of the fediverse means some toots may never have made it to my instance, in which case I can't see them, and can't include them.

The chart will eventually be deleted, so if you'd like to keep it, make sure you download a copy.

@akkartik oooooo, this is *awesome*. Wouter van Oortmerssen put together something vaguely similar called TreeSheets that I've played with in the past.

Maybe some cross-pollination inspiration there! I wound up using vimwiki because it fits my brain better, but that's neither here nor there!

@chotrin Thanks for reminding me of TreeSheets! I hadn't really been thinking in this area the last time I looked at it.

Do you happen to know anything about the file format it uses? I wonder how close to plain text it is. It does have a lot more expressivity with images and so on..

@akkartik I’ve not poked around super hard, but it looks like it’s a custom single file binary format with images inlined with the data. Could be wrong, could be several binary blobs, one per page?

I remember syncing this stuff with Dropbox at one point, I don’t recall why I wasn’t putting it in git. Probably just a pain to remember to keep committing it!

Sign in to participate in the conversation

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.