A colophon is a publishing term that describes how a book was made. This is that, but for a website.

Information Architecture

I wanted a personal knowledge base that was completely non-hierarchical, but well networked and allowing for serendipity. I liked the idea of "digital gardens", but I also found the context of an immutable event log to be too valuable to exclude. The result is a marriage between the two, with a system structured around me being able to make brief, tagged "stream events" that show up at the bottom of every manicured "garden" (wiki) page.

The Garden

The Garden is for living documents, which is the "knowledge" that is fed by the Stream. It is the "what" to the Stream's "how". Where the Stream may contain notes on the process of a project, the actual project lives in the Garden.

The Stream

The Stream is where actions occur, in chronological order. Every thing that I do happens in the Stream, though you can filter the Stream to narrower views focused on a specific topic or project.

This makes it not only easy for readers to follow my train of thought, but for me to do so as well. If I'm ever looking at one of my own pages, my recent thoughts on the topic are directly visible on the page, ready for me to connect those ideas to what's already in the garden.


This site was built by hand, using two small CLI tools that were also built by hand. /sam is a tool that makes it easy to write XML (and by association, HTML) by hand, and /collect is a "plain text programming language" that makes it easy to template, iterate, and render blocks of text. Together, I write this entire website in a text editor.

/colophon Stream

January 7, 2024

/stream /reading /colophon

Spent some time building out "Now Reading" functionality using /collect. Essentially, every "page" that describes a book now has a handful of other @value objects on it for metadata like title/author/publisher, and I wrote a few @scope objects that render a book summary using those values. I also tagged those pages with additional @group tags "books" and "in-progress", so I can make a @list with @query objects to @include all of the "in-progress" items and then @filter those for "books". Then I @reverse that list and pass it to the different renderers, and now I can see all of the books that are in progress just by adding some metadata to those books' garden pages.

September 2, 2023

/stream /colophon /programming /linux

After spending a few hours this week trying to build a CLI that replaces my jnl shell-alias tool and allowed it to publish my website, I spent a few more hours today really thinking about the difference between a shell script and a program binary, and if I wasn't creating unecessary complications. This project of porting a shell script to a Rust binary taught me a lot of things about the nature of the shell as a computing environment, and pushed me to try to keep these tools as shell scripts for now.

I ultimately don't feel like the scripts I have now are the best version of this tool, but I also don't think that the compiled binary I was building was any better... and it was going to take an order of magnitude longer. I'm going to sit in the discomfort of these unfinished tools for a while as I continue to shape the /coalescent computer environment, and at least enjoy the fact that it's much faster to add entries to my website logs now.

May 24, 2023

/stream /technology /programming /collect /colophon

As I started fleshing out components of this site, I wanted to add some new features to /collect. I added the ability to reuse the name of a @map as a value using "$NAME", and it can also be interpolated in strings with "@name". I also exposed a list of the @group objects on a @map using the value "@groups" on a @map. The first change reduced redundancies when writing new stream events, and the second made it possible to render all of the groups for each stream event.

May 23, 2023

/stream /reading /colophon

Read The Garden and The Stream, by Mike Caulfield after seeing it linked in Maggie Appleton's digital garden post, and seeing it use the same metaphor I stumbled on for this site.

I appreciated the interpretation of the history of the "personal web" through the lense of "streams and gardens", with the early web going for a garden metaphor (open wikis), and getting eaten by the stream metaphor (blogs, RSS, social media). Mike suggested that the time may be right for the garden to return (this is from 2015), and this tracks for me with the rise of Roam, Obsidian, and the general movement around the smallweb and permacomputing.

/stream /reading /colophon

While trying to read more about digital gardens, I checked out this piece on the history of digital gardens by Maggie Appleton. It was in this piece that I saw the link to "The Garden and The Stream" by Mike Caulfield, and found some gems around thinking about "topologies", as well as providing "epistemic transparency".

/stream /technology /programming /colophon

Built out the rough framework for this website, settling on the complimentary "garden" and "stream" metaphors.