Canvas
The canvas feature in Discourse Graph provides an interactive visual workspace for creating and connecting discourse nodes and relations. Built on top of tldraw, it allows you to visually map out discourse structures with drag-and-drop functionality, adding other visual elements like texts, scribbles, embeddings, and images.
Creating a new canvas
Using the command palette
- Open the command palette (
Cmd/Ctrl + P) - Search for “Create new Discourse Graph canvas”
- Press Enter to create a new canvas
The canvas will be created in your configured canvas folder (default: Discourse Canvas/) with a timestamp-based filename like Canvas-2025-01-15-1430.md.
Opening and viewing canvas
Opening a canvas
- Open the file of the canvas
- In case the file is still in markdown format, you can open the canvas mode by either
Using the command palette
Or click on the canvas icon at the top right corner
![]()
WARNING: DO NOT MODIFY MARKDOWN CONTENT OF FILE
Discourse nodes
You can add discourse nodes to a canvas in several ways. Most flows open the Create discourse node modal, where you can create a new node or search for and select an existing one.
Add a discourse node to canvas
- Click the Discourse Graph icon in the bottom toolbar
- In the panel on the right, click a node type to select it (or drag a node type onto the canvas)
- Click on the canvas where you want the node
- In the Create discourse node modal, enter a title, confirm the node type, and click Confirm The new node appears on the canvas as a discourse node card linked to the note that was created.

- You can also search for existing node from this modal and insert it to the canvas
Add an existing node
By dragging onto the canvas
Only notes that are already discourse nodes (with a configured nodeTypeId in frontmatter) can be dropped. If the same node is already on the canvas, the existing card is selected instead of duplicating it.
From the file explorer
- In the Obsidian file explorer, drag a discourse node note onto the canvas
- The node is added at the drop location

From the editor
When a Discourse Graph canvas is open, internal links in Live Preview show a small drag handle (⠿) after the link.
- In a note, find a wikilink or markdown link to a discourse node (for example
[[CLM - My claim]]) - Drag using the handle next to the link
- Drop onto the canvas
The handle appears for [[wikilinks]] and [markdown links](path.md) that point to notes in your vault. It does not appear on image embeds (![[...]]).

Convert text or image shapes into a node
Turn tldraw text or image shapes into discourse nodes without leaving the canvas:
- Select a text or image shape on the canvas
- Right-click the shape
- Choose a node type from the Convert to submenu
- In the modal, edit the title (text is pre-filled; images start with an empty title) or search for an existing node
- Click Confirm — the shape is replaced with a discourse node card
Discourse relations
Create new relations between nodes
- Click the discourse node icon in the toolbar
- Click the type of relations you want to create between two nodes
- Click and drag the arrow from the source node to target node

- Alternatively, you can select the dots that show up when you click a node, then start dragging to the destination node to create a new relation

Note: The relation type selected must be compatible between the source and target nodes. Otherwise, you will receive a relation tool error. To update the setting on what relation types are possible between two kinds of discourse nodes, you can change the setting Relation types setting

Adding existing relations
- Click on the discourse node you’re trying to add existing relations of
- Click on the “Relations” button that pops up. You’ll see a panel showing all the relations that this node has
- Click on the ’+’ or ’-’ to add these relations to the canvas
- For relations whose target discourse node isn’t on canvas yet, it will be added to the canvas along with the relation

Canvas Features
Key figures
You can choose to show the first image of discourse nodes of certain type. To change the setting on whether this first image show up, you can edit it in the Node Type Setting

Then you will see the image show up if any is present in the file.

Open discourse node files
- To open a discourse node to the side panel, you can press Shift + Click, or click on the sidebar icon when hover on discourse node.
- To open file to a new tab, you can press Cmd + click on the file
Auto-save
- Changes are automatically saved to the markdown file
- No manual save required
- File updates preserve the markdown structure and block references
Export Options
- Markdown View: Switch to see the underlying markdown structure
- SVG Export: Export canvas as SVG image (via tldraw)
- PNG Export: Export canvas as PNG image (via tldraw)

Troubleshooting
Common Issues
Canvas Won’t Load:
- Check that the file has proper frontmatter with
tldr-dg: true - Verify the JSON data block is properly formatted
- Try switching to markdown view and back to canvas view
Relations Won’t Connect:
- Ensure the node types allow the relation type you’re trying to create
- Check your discourse relation configuration in settings
- Verify both nodes are valid discourse nodes
Performance Issues:
- Consider splitting large canvases into multiple smaller ones
- Close other resource-intensive applications
Search Not Working:
- Verify nodes have proper frontmatter with
nodeTypeId - Check that the Obsidian metadata cache is up to date
- Try restarting Obsidian to refresh the cache
Getting Help
If you encounter issues with the canvas feature, reach out to our dev team via Slack