Home / GitHub Page

Sharing notes or notebooks


#1

Hi there,
looking to get out of “all my stuff are in Google’s server” I discover Joplin to get out from Google Keep.

One feature I miss is the ability to share some notes with my loved one.

I realise that is quite contradictory with the whole encrypted note stuff so I’m opening this discussion.

I was thinking to have an encryption key per notebook so I can create a shared notebook but we need also a way to sync only this notebook.
For this, may be the ability to specify a sync channel per notebook as well so a notebook can be sync into a common account in the cloud?

What you guys think?


#2

Sharing notes and notebooks is a commonly asked features and I agree it would be useful. The way Joplin is architecture at the moment would not make that easy though.

A way to somewhat make it work would be to have multiple Joplin profiles, eg. one for work, another for sharing stuff with family, each syncing to a different target. Obviously it’s not as convenient as having everything in the same app but it would work. To use multiple profile, use the “–profile” flag or use multiple PortableApps versions.


#3

Hi Laurent,

Thanks for your answer!

As a techy guy, I can manage this, but I think it will too much of a hassle for my gf :-/ We’ll wait :wink:


#4

Nextcloud has a fairly easy sharing API available, thus implementing a right click on a note to share that note publicly (could also be protected by a password), should not be too hard.

Of course this will not work, if the notes are E2E encrypted.

Also, this would require using different APIs for all the different synchronization endpoints (Nextcloud, Google Drive, Dropbox, …).

Unfortunately I’m so not a JS guy that I can’t implement this myself. If this project were in Objective-C, Python, or some GUI C/C++ code, I would have already submitted several PRs and helped with other feature requests.
When I have a bit more time, I will look into JS development…

However, this is definitely a feature I’d look forward to as well. :wink:


#5

Yes, most cloud platforms have a way to share files, however the issue is that Joplin’s data is not in a user-friendly format (it’s basically a database meant for performance), so it makes it hard to find the file you want to share, and for the recipient the file will look strange with metadata appended at the bottom.

What I’ve been thinking of is develop a client that will create a user-friendly copy of the data in a folder (called a “Live Folder”), with a folder per notebook, and each .md file named after the note title. The Live Folder will be updated whenever something change in Joplin or whenever one file is modified or added. Those files and folders will be placed in eg. the Dropbox directory on the user’s computer, and Dropbox Sync will take care of syncing that to the cloud. Then it will be possible to share and view the data more easily.

There are quite a few drawbacks to this approach though, which is why I haven’t done it yet. Mainly, it relies on the cloud platform own sync client, it won’t work on mobile, it indeed can’t work with E2EE, and if two clients read/write to the same Live Folder, various conflicts could happen. So basically it’s not sure yet what’s the best way to do all this.


Plans for regular file names?
#6

Would this “Live Folder” allow the other person(s) to edit the notes with Joplin on their devices, and have the changes sync back to the first user?

My wish, and I assume it’s the same for @Geobomatic, is to share the actual notebook, so that the other person can also use it through their Joplin app (add/remove notes, add/remove tags freely, … as if the notebook had effectively two owners ). In my case, my partner and I use a shared Evernote notebook, where we can co-edit notes from all our devices.

(If Joplin allows all co-owners to add/remove arbitrary tags, that would put it ahead of Evernote, which lets only the original owner of the notebook add any new tag to notes in a shared notebook.)


#7

I know this is an old thread, but I was wondering last night over something with this.

Wouldn’t it be possible to “split” the app in two. Say that you optionally could add a second way of syncing (another webdav address, or another folder on dropbox called something different, etc.). And that syncing would only be for sharing. Eg. using NextCloud adress.blabla.com/webdav/App/JoplinPersonal/ and I add a second “account” called adress.blabla.com/webdav/App/JoplinShared/.

For the second one I could still have E2E (but need to share the password with the person I want to share the notebook with). And in the app, it would divide the two accounts like an email app sets up different accounts by giving you two different headers too visit.

Maybe this is a stupid idea, I was just wondering if that would be a solution for sharing notebooks? I know this means you are really sharing through the cloud provider, but I think that is the best solution anyway since Joplin doesn’t offer it’s own server for syncing notes (which I think is good! Focus on the app, not having to run your own server for syncing and all work that comes with that).


#8

I would like to be able to easily switch between profiles.


#9

A solution I would prefer is to the ability to assign individual syncing addresses to individual notebooks (or groups of notebooks). Whoever has access to such a syncing address is totally up to the user. From a programming point of view, another user is just another device. No hassle with user accounts, sharing tables, etc. Apart from the ability to assign dedicated syncing hosts to individual notebooks, no other changes in the program are needed.

  1. If you are going to share notebooks you somehow need to mark which notebooks you are going to share and with whom. All this is taken care of automatically if you just can assign individual sync addresses to individual notebooks. No hassle with multiple user accounts, sharing tables, etc. Just like it is now, a syncing address can service multiple devices and whether these devices have the same owner or not is not really your concern.

  2. It is likely that I might have to use multiple sync addresses anyway, as I might prefer my own nextcloud for sharing with my wife, and the companies google cloud for sharing with my company partners. So you will end up providing multiple sync address capability anyway.

  3. Apart from sharing, multiple syncing hosts is a usefull feature by itself. I live on a sailing boat and I use shore connections when available. While anchored at unihabited islands I still like to use notes and still have (unfortunately) a need to maintain todo lists. So I use the on board netcloud server so sync all boat related notes/todo’s between devices, and shore related notes/todo’s via a shore based cloud server.

Thanks for considering!
Frans