Hello everyone !
I've been thinking about making a GTK4 app that acts as some kind of wrapper/front-end for Joplin. But, to be perfectly honest, I've no idea where I can start when it comes to the back-end. It seems that Joplin in itself doesn't have an API usable outside of the app itself, or even available when the app isn't installed.
Does anyone have any leads ? Thanks in advance !
Nerd
I don't know of any front end desktop apps but there is a prior example of a frontend mobile app using the Joplin backend (Ruslin | F-Droid - Free and Open Source Android App Repository) which seems to support self hosted Joplin Server backends only.
As I'm alluding to the problem is you have a whole bunch of different sync targets that would have to be accounted for so without a Joplin install you would need to account for (if you were going for near-total Joplin parity):
- Joplin Server
- NextCloud
- WebDAV
- Amazon S3
- One Drive
- Dropbox
- File system
You can find various technical specs in the docs but I don't think there is anything that explicitly outlines exactly how to use the various sync targets outside of the actual source code - for example various sync target implementations can be found in packages/lib as well as the generic file-api.
Ok I see... So the main work would reside into reading the files and organizing them... Sonds good, thanks for your reply !
Indeed but remember the "physical" files would only exist for the local file system target - all the others use various flavours of APIs for each of the platforms. For example with Dropbox Joplin doesn't read the files in the local dropbox folder - it directly communicates via Dropbox's API.
I recommend using the joplin cli, so that you can leverage the existing web clipper api without having to deal with the sync stuff yourself. The joplin plugin I created for vscode is essentially a "front end".
1 Like
And if that can help we publish these libraries under @joplin/lib
, which can then be integrated to any JS/TS project
2 Likes