Share/publish Obsidian canvas with sharecanvas.io

Hey everyone, I’m showcasing a tool I built for sharing your canvas files: sharecanvas.io. It allows you to generate a link and share your canvas with anyone — for example: Share Obsidian Canvas. It’s been really useful for sharing my canvas pages with colleagues.

You can use the tool by going to sharecanvas.io and uploading the original canvas file and any images referenced in the canvas. If you specify your original Obsidian Publish site, any links in the canvas will redirect to that site. You have full ability to delete all your data if you wish, and editing is also supported. Here’s a demo of the process: Sharecanvas.io Demo - YouTube.

The tool is built with React Flow to render the canvas from the open source format, and stores your data securely in Firebase. I’m working on open-sourcing the project and adding more features — e.g. search bar, integrating as a plugin, etc. — let me know if you’d be interested!

Hope you all find this tool useful.

17 Likes

Hey there,

Thanks for posting this. I have been looking for something kind of in this realm, while hoping that obsidian will enable canvases to be published through their own system. While this is not exactly that, I gave it a try, but can’t seem to get the link to work and connect to my published site. I also tried to include a canvas with a note, which did not populate. I am sure this is an early project, just wanted to let you know how it worked for me. Best of luck with things! I will keep this link for a couple of days perhaps: https://www.sharecanvas.io/p/test-

2 Likes

Thanks for trying it out! I should have clarified, the link to your Obisidian Publish site should be the home page. If you make links within the canvas, it will then look up the page in your Obisidian Publish site via the sitemap.xml file.

I adapted your page to this setup - it should be working now!

1 Like

this is awesome.

I noticed that a double click zooms in, but then there’s no way to zoom out (unless you use the browser native cntrl+scroll wheel)

Could be good to have some % widget in the corner or something

What would it take to publish to a custom domain?

1 Like

I appreciate the response. I replied to you on another forum page, but essentially have still been bumping into the same issue for some reason when trying to link multiple pages. I also realize the tool is not necessarily secure for linking more publicly without allowing others to jump in and edit. If you could share where that sitemap file lives (very new to this kind of stuff and cannot seem to find it), I might be able to help myself fix it. Thanks again for your work!

Hey @carcher! Thanks for the support.

A workaround to publish to a custom domain is to link the page on the other domain to the sharecanvas page, or to use an iframe. To get it working natively on sharecanvas would require significant dev effort though. Is your custom domain an Obsidian Publish site or another site?

Do you mean the sitemap file for an Obsidian Publish site? It is at /sitemap.xml. I am not sure what you mean “trying to link multiple pages”, could you expand?

Thank you for this wonderful tool. It is more than useful.
One question: how to toggle light mode?

Sorry, very new to both obsidian and the programming lingo. I want to use obsidian canvas as a navigation hub for my Obsidian publish site. Visitors to the page could click various links on the canvas, leading to other pages on the site, and could ideally navigate back to the canvas. For some reason I was having difficulty with multiple links in one canvas. I would also want to make sure that I was the only person who could access and alter the canvas, and right now unless I am mistaken, anyone who navigates to the .io could /edit to change the files? Again, very interested in finding some way to make this work, and I appreciate your thoughts.

Hey, Thanks for the tool.

I have a small suggestion for the website.

Currently, the website doesn’t validate the canvas name, which took a while to figure out why my file is not getting uploaded.

Refer screenshot:

If possible can you add the validation.

Thank you very much

Can you mandate the Published Site as mandatory field. As that was necessary to render iframes

Thanks for the tool.

This is awesome. Thank you for sharing.

I clicked on your demo canvas, but I couldn’t zoom in? So I couldn’t read the text. I might be missing something, am I ?

Otherwise I suggest changing it to mouse zoom in your canvas settings??

edit: I bet there is a hotkey lol Sorry. I am just used to zoom with mouse wheel.

Yes, on Mac the hotkey is CMD+scroll to zoom. I think on Windows it would be something like Ctrl or Alt + scroll.

Could you please open source it so we can self host when needed?

1 Like

I second the request to opensource, I would like to selfhost it.

1 Like

My publish site is using a custom domain and is password protected, when I upload a canvas the layout/cards are there but none of the content renders.

What would prevent the content from rendering in the cards on the canvas?

I’ve tried using both my obsidian publish id and the custom domain in the published site link but doesn’t change the behavior in my experience. Any ideas or suggestions would be appreciated!

Hello,

(I clicked on the demo link, but nothing is displayed?)

I’m not a coder, so I don’t know how realistic my proposal is in terms of time and implementation.

But I’d really like to be able to share with clients or learners, canvas boards to which they could add elements, for example:
A Business model canvas
A moodboard
Design thinking

I’d need to be able to send to another user a unique link, in which they could add their own input.

This is my “2 cents”. I have the feeling that canvas is a good opportunity to get obsidian and those who use it out of " isolation". Because that’s what’s missing with obsidian, being able to work with others.

Currently the way the code is written, it is tightly integrated with the backend storage (Firebase). If you let me know more about how you are planning to self-host, that would help me identify how to make the backend interoperable.

Also happy to have help with editing the code :smile:

If your publish site is password protected, this tool won’t be able to access those pages. As a workaround, the tool could ask you to upload those .md files during the .canvas upload. Would that work?

I suggest you use Figma’s Figjam for this advanced use case.