Obsidian introduced the Canvas view in v1.1 released today to “insider” (contributors) users.
It is deceptively simple, but even after an hour using it I’m hooked. Cards on the canvas can be viewports into existing notes, images from the vault, or cards that are part of the canvas. Edges and edge captions can be added between nodes. Notes added to the canvas can be edited in situ on the canvas.
I read on the Obsidian Discord that it is a JSON file. They will be releasing a public spec for the file format.
At this point, the canvas looks pretty basic but the layout and navigation of the Canvas is very good. They will be adding features for editing elements on the canvas in future updates. Also, linking between different Canvas is awkward.
I’ve built three Canvas(ses?) so far and they are working smoothly. It’s a great playground for setting up a Dashboard of key documents or for building Kanbans.
In the current 1.1 release of Canvas you can click into a file displayed on the Canvas and edit it. Or, you can click into an Exclaidraw document displayed on the canvas and edit it. Or, you can add a card to the Canvas and edit it or convert the card into a file.
Thanks. Good to know. I’ll stick to mermaid.js for now. JSON is technically a text file … but not very readable without a lot of effort.
Obsidian is getting more impressive all the time, but I wonder if this is a sign that it is straying from its principles of plain text and portability, given that this is a built in feature, not a plug-in.
The raw JSON data in the .canvas file is not really intended to be user-editable. The JSON text in the .canvas file is not exposed in the interface. The data in the file are rendered in the interface to display the canvas and its contents. Users interact with the graphical rendition of the Canvas, and Obsidian records the rendering instructions behind the scenes in the .canvas file.
The Canvas feature that Obsidian produces .canvas files and what users do with Mermaid are really two entirely different things.
Counter - with a JSON format you can always write a converter to transform the data from one format to another. I can’t see how the developers could have created the Canvas feature with plain mark down files.
Mermaid does a pretty good job for the range of chart types it offers.
The screenshots I’ve seen of what Canvas can do isn’t wildly different, except that nodes can use documents, images, etc., instead of just text – but Obsidian already has plain text approaches to embedding those in text documents.
The biggest difference beyond that is arbitrary placement. I agree text wouldn’t be great at that, but auto-arrangement for element would be possible.
The entire philosophy behind markup languages, especially HTML (and Markdown originally was intended to mirror HTML), is that they aren’t so much layout tools (even if HTML + CSS has become that, among other things) but rather describe the content rather than presentation.
Again, I’m not saying it’s a bad direction for Obsidian to go. But to me, it’s clearly a step away from the original principles of portability and plain text. Many people get good use out the advanced features of all kinds of apps with proprietary data formats too, but they aren’t plain text, markdown or portable.
I’m going to offer a counterpoint here and claim that the Obsidian Canvas is the most exciting software development I’ve seen in years. I can spatially arrange my notes on a large canvas and edit the contents in place. I can drag in images, which are automatically added to my Obsidian attachments folder. I can add URLs, which give me a live view. I can spatially connect and order notes, adding new ones as needed. I can mindmap and add annotations.
I’ve already started using the Canvas to plan meetings and courses. I can also see how it will be useful for brainstorming and drafting. And I suspect we’ll soon start to see people using the Canvas for personal dashboards, project management, and complex writing projects (possibly replacing some of Scrivener’s functionality). The Obsidian devs have essentially made a Miro-like board that lives alongside my local plain text files (and that is simply JSON under the hood). Sure, the raw text of the Canvas pages isn’t user editable in another app in the same way that markdown is, but this is still a very much user-focused and export-friendly feature. And I would hate for Obsidian to stop innovating because of the limits of Markdown or Markdown parsers.
The Canvas gives me a visual composing space that exists alongside my markdown files and that allows me to edit them in place. I’m excited about how this will extend Obsidian’s usefulness in my work. There’s lots of potential here for writers.