You'd mention a
[[concept]] in different contexts:
Later, when you go to the
concept page - it will have a lot of usage examples with rich context around them. Even though you haven't deliberately written about it.
You can use this assortment of context-rich backlinks as a direct thinking aid. Or if you decide to engage with the note deeper - you can hone your understanding by synthesizing the assortment of references into a summary.
As a consequence, linking to things in my knowledge base is a very ingrained motion for me, when I write anything. And I miss an ability to do that in the contexts when I write outside my notes.
One context in which I have this itch particularly often is texting. For me - writing a message in a chat has a flavor that feels very similar to creating a fleeting note.
I want to be able to refer to concepts that I have in my knowledge base as I talk to people & have that note-usage reflected in my notes (as backlinks).
This seems particularly relevant in the context of team knowledge bases and a group discussion - you should be able to reference things from your collective external brain to make the conversation more informative
One of the common issues people have with Slack is that it's easy to lose sight of insight generated during conversation. There is no good way to make the newly generated nuggets of wisdom discoverable.
I believe that a mechanism of backlinks would come a long way in alleviating this problem. When one references a concept in a message - the concept page should get a backlink to the message. That way:
Reflecting on this itch - it occurred to me that the mix of knowledge management and chat can be a source of a variety of fruitful interactions. Below is an incomplete list of interactions I've thought of with prototypes/mockups for some of them.
You should be able to easily reference the pages from within the knowledge base in the course of the conversation
The fluidity of interaction is important here. Technically you can always go into your shared knowledge base, find the relevant page, manually copy a link and paste it in the conversation. But that creates a lot of friction, and you'd only do this in exceptional situations. Whereas if linking is easy - you'd use it far more liberally.
In the demo below this is achived through providing you with autocomplete experience for concepts from your knowledge base.
When you talk about a concept in a chat - that should be reflected back into the knowledge base
When you want to interact, with a note that you mentioned, in more depth - it should be easy to pull in additional relevant information from the knowledge base
Ability to reference concepts & ideas in a conversation is a key affordance, but having only a name reference is often too high level to be useful.
as an intermediate step - I believe a "summary view" will also likely be useful
As a corollary to this - when you interact with notes in the context - it seems likely to me that you'd want to augment them
frame of transclusion is helpful here again as it implies the two-way connection
Chat should transclude application specific context (for things it integrates with)
The ability to pull in and manipulate notes, mentioned in the conversation, is one example of this.
When topic of discussion is non-trivial - you often want to "reload the context of the conversation" before replying.
You'd look at the code on a Pull Request
You'd poke around the Figma prototype
You'd skim the relevant part of the note or document
And so it's important that this context is immediately available for you to see and interact with, in the context of communication medium.
Have different lenses on the same conversation (document focus vs chat focus)
Currently, the comments in collaboration tools (Google Docs, Figma, etc) are disconnected from your standard communication medium (e.g. Slack)
That causes a fragmentation of your conversation
you need to follow it in several places
you are never sure where have you talked about that particular topic
and when you try to search for it - you need to do it over a variety of tools
At the same time it's valuable to have conversations in-context.
We can make this situation better by using one messaging medium and presenting different lenses on a given conversation, based on your context.
This solves the fragmentation issues mentioned above and allows you to present the most appropriate conversation UX, depending on the situation.
As another interesting example of this - see the following "Web annotation over Matrix Chat" projects:
Follow conversations as tag streams
Channels are a great way to organize your conversation and allow you to follow the specific things you really care about.
As with other hierarchical systems, though - having many channels tends to add friction at the point of information entry - you have to decide which point in the hierarchy you need to place the message/note at. And many people find it quite frustrating.
As an alternative - one can follow a model similar to Roam's daily pages:
Most messages should originate in the few "core" channels (like
When you mention a concept in your message - that message will also automatically be reflected in the "concept stream"
Which is basically a channel that receives all the messages containing a reference to that concept
As well as any new mentions of the concept from the knowledge base.
When you read the message in one of the streams - it marked as read everywhere.
With this approach you gain an ability to very granularly subscribe to the things you care about, while minimizing friction at the time of sending the message.
Messaging as a quick capture layer
Many knowledge work tools are not optimized for quick entry of information (👋 𐃏 Roam)
And "sending things to yourself in chat to record on-the-fly thoughts" has repeatedly emerged as pattern people have found useful.
But, as discussed above, it doesn't have to be - if integration is taken one step further.
What I find interesting about this use-case is that it's not something I was deliberately targeting or trying to do when I started working on this. It emerged organically, as a special case of reflecting the insights you derive in the conversation back to the knowledge-base
My basic hope for this post is to highlight the potential of these interactions and encourage a discussion around them, and hopefully uptake within existing products
Another approach, that I feel a pull of, as an engineer is to build all the things that are missing in the world myself 🙃.
It doesn't seem wise in this case, as there are many good, established products in both chat and knowledge-management spaces. And, while I think implementing these ideas would make both note-taking and messaging better, it's by no means 10x improvement over the incumbents 🙂
That said - I've recently arrived at a conceptualization of these ideas that makes me think that indulging my pull to build things may not be a wasted effort.
It occurred to me that messaging is a cross-functional concern that many projects need to re-implement and it'd probably be good to have something like "Stripe for messaging"
Where you, as a creator of a new service, get a set of ready-made components and backend that you can use to easily implement "messaging" within your system
Motivated by the above, and encouraged by existence of Matrix chat (which gives me hope that I, at least, don't have to rebuild chat infrastructure in this case) - I've been working on some experiments in this space:
The demo above shows me using the combination of these two projects to implement the "autocomplete for concepts in your knowledge base in chat" and creation of backlinks from messages to concepts.
If you're interested to riff on these ideas or play with experiments I've built so far/etc - leave a comment!