🪴 Scaling Synthesis

Search IconIcon to open search

R- Roam can loosely be considered a DSL with a structural editor

Last updated May 19, 2022

Eli Parra’s twitter thread visualizes how Roam Research can be expanded upon through its base structure. Before introducing his core claims, he walks through a history of 1-way linking and why it allowed the web to scale, but has prevented progress in our ability to manipulate data and present different views. The web was able to scale aggressively because of 1-way links, but C- Claims gain implict meaning through their context of use, and added context is necessary for knowledge reuse. The invention of wikilinks was a step to enable Roam’s core structure of bidirectional linking.

Roam’s adaptation is making 2-way links a first class citizen. Combined with the ability for end users to program their own templates and workflows, Roam allows people to expand their use cases far beyond the imagination of the designer.

This speaks to an idea of a DSL for a discourse graph with information entry, visualization, and retrieval being part of the design of a decentralized discourse graph. Power users want to directly interface with the data structure of the app, and tools like Roam Research allow that freedom.

By creating an automated reference list of all backlinks, Roam provided insight as to what was connected to each page. Taken further, Roam’s block structure allows users to narrow the scope to provide precise context, or as Eli Parra says, a “bookmark or an “anchor” back to its context.”

Roam’s strength is enabling humans to write into graphs in a way that’s clear to us and parsable by computers. Because of the tag, wikilink, attribute structure, views are flexible and interchangable. A user can move seamlessly between a diagram, graph, or link, based on the end user programming.


Roam’s query, table, diagram & kanban functions allow us to peek at what else may be possible by writing directly into the program’s structural language. The end user is given the power to manipulate their experience through the structure of the data itself. This speaks downstream to the idea of a structural editor for data structures.