Yunohost is a pretty interesting project, despite my approach being different and is more about using files instead of APIs for composability, kind of similar to what is described in Composability with other tools:
Files allow interoperability to emerge retroactively. New apps can come along and implement the file formats of other popular apps, uplifting their file format into a de facto protocol. This has happened many times, from .doc, to .rtf, to .psd. Competing products are able to get off the ground by interoperating with incumbents. New workflows can be created permissionlessly.
In our case, we try what we call an “interstitial programming” approach, trying to extend the tools from the space between them, working in the tools that interconnect them, instead of from inside, working within their internal source code. It has been pretty agile and useful in our experience. One example is our connection between Pharo and TW, which is done via the JSON representation of the Tiddlers, which allow us to read/write them from/to TW and manipulate them lively inside Pharo. In this example, JSON is the file format that connects these two tools, allowing us to program TW without using JavaScript. We also avoid most of the server complexity in such way and the future chatbot, which uses a server, would be a single connection interface between several apps/formats, even if the user don’t have a single authentication between different services like in Yunohost.
Is nice to share those different approaches about how to enable more collaboration between TW users and between TW and other tools. Thanks for the talk and ideas/tools exchange. Regarding excalidraw, I think I’m going to use tldraw plugin for TiddlyWiki:
https://tiddly-gittly.github.io/tiddlywiki-whiteboard/