One of the core workflows that Roam enables for me is assembling insight around new ideas (& defining terms) through backlinks
You'd mention a
[[concept]] in different contexts:
when writing about another idea and a connection occurs to you
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.
see Andy Matuschak writing about this pattern at Backlinks can be used to implicitly define nodes in knowledge management systems
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:
you can see messages in the relevant contexts, and they stay discoverable over the long run
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.
ideally you should be able to pull in more context on demand by transcluding a note or a block you've referenced directly into the context of the conversation.
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.
Below, when I talk about having the same conversation in different contexts - I use an example of pulling in a live view of the Figma document directly into the chat context.
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.
Mockup - how it'd look like if Figma was integrated with Slack for comments (expand to full screen view for better experience)
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.
Messages should have backlinks to places they are referenced in
Backlinks is a great way to provide ambient context that helps you make more sense of a nugget of information. They've deservedly become more popular across a variety of knowledge management and productivity tools.
Messaging should not be an exception - I would love to see backlinks from a message to:
Other messages that mention it
Entries in the knowledge base that mention it
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.
Phone to Note service is an example of people internalizing that pattern to connect your quick ingestion mechanism to you core knowledge management systems.
What I found sad about it is that an ability reference pages - a core affordance, in my opinion, is lost in the process.
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
It's not easy to "just combine", say, Slack and Roam because of the siloed nature of modern software.
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!
The objectively correct way to leave comments on this post is to use Matrix Highlight (see the link for instructions)
At the end of the post you can see the read-only stream of comments about the post in
#knowledge-and-communication:matrix.org room. You'd see both Matrix Highlight annotations and things people have posted directly.
Tana people expressed interest in solving this and have some experiments with mixing in conversation into their product, it's very early-stage and not available publicly though
https://fibery.io/ talks about this as a part of their vision, but they haven't started working on this yet as far as I know.
Prior art on tag streams
Lo-fi mockups of messaging app. How often do your conversations wind up spanning multiple topics, but are in one Slack channel? pic.twitter.com/TZf48sWnYx— Jeff Tang 🏛 (Ohio) (@tangjeff0) April 9, 2020
What are your favorite examples of combining knowledge base (like Roam) and communication medium (like Slack)?— Vlad Sitalo in Prague (@VladyslavSitalo) May 22, 2022
Chatting with Glue - for more explorations on the intersection between chat and knowledge. And how chat can be structured differently to help you create knowledge
Google Wave had it all
I've been watching it today and it's so good (and so sad that it's dead with no successors) https://t.co/PqQ3OuaNh1— Vlad Sitalo in Prague (@VladyslavSitalo) August 30, 2022
You can add comments by using Matrix Highlight or by joining
#knowledge-and-communication:matrix.org room using Matrix Chat
In recent thinking on Bringing knowledge and conversation closer together - I've been relying on existing Matrix chat infrastructure
In case of Bringing knowledge and conversation closer together you can use
!OlsNTBReIVyqErinUY:matrix.org to join a public discussion room for the page.