Hi everyone,
I’ve been going through the Visual Workspace feature request and would like to work on it.
This discussion is related to GitHub issue #15193:
https://github.com/laurent22/joplin/issues/15193
Before jumping too deep into implementation, I wanted to first document my understanding of the feature, proposed implementation approach, and an incremental roadmap so feedback can be gathered early and the implementation stays aligned with expectations.
I’ve attached a short proposal document covering:
-
feature understanding
-
plugin-first implementation approach
-
phased development roadmap
-
a few design and workflow questions for feedback
Looking forward to hearing thoughts and suggestions before proceeding further.
Add Support for Visual Workspace feature #15193.pdf (88.9 KB)
Hi everyone,
Just sharing a quick update on the Visual Workspace plugin prototype.
Progress has been a little slower than I originally expected since I’ve been balancing this alongside college work and recent submissions. A good portion of the time also went into properly understanding Joplin’s plugin APIs, panel/webview communication, and figuring out a clean architecture before building too much on top of it.
That said, the foundation is now in place and Phase 1 is coming together well.
Current progress:
-
Multiple canvas support: create and manage separate visual canvases directly from the toolbar/menu
-
Canvas persistence: layouts (nodes, positions, and connections) are automatically saved to dedicated Canvas: notes inside Joplin
-
Smart visibility handling: the visual workspace opens automatically when a Canvas note is selected and hides when switching back to regular notes
-
Note embedding: native Joplin notes can be selected from a picker and added to the canvas as draggable cards
-
Note linking: double-clicking a note card opens the underlying note directly in the editor
-
Core sync flow completed: canvas state is syncing reliably between the React UI and Joplin data layer
Next steps:
-
polish card styling and overall canvas UI
-
add feature of including cards and documents
-
add a search functionality in add new note feature
-
improve connection edge behavior and interactions
-
handle edge cases such as deleted or renamed notes
Getting this far has made me much more comfortable with Joplin’s plugin architecture, and this has already been a very fun learning experience.
I’ll continue refining the prototype and will share a testable version once the core interactions feel smooth and stable. I have also added a sample video of the plugin that i have developed till now.
As always, feedback or suggestions are welcome.