You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have just pushed code which implements peer to peer differential synchronization. Before implementing this, I tried several solutions but liked this because:
Server keeps a minimum amount of data e.g. only credentials
In order to authenticate on the server, you need to know only one password thanks to OpenPGP's signatures (read more about it here)
The server is needed only to exchange the signaling information between peers and deliver invites
If you want to review the implementation check these:
After you open the client, it will greet you with the page where you can choose a username:
Then, you can either upload your existing OpenPGP key or generate a new one:
After completing the registration process, you can start creating and then sharing your notes with others:
If you start using the app on other devices, all your data will be automatically synchronized between them. Other users will see only the notes you have shared with them.
Sometimes you can also choose to synchronize only a particular amount of notes with your other devices. To do that, just create another account (for example, wwebfor@android, wwebfor@desktop)
Several thoughts
So why did I implement this instead of fixing Dropbox, RemoteStorage synchronization. It's because I wanted to have collaboration support in the app.
Also the fact that the server-side still doesn't store sensitive information even in encrypted format is a bonus too (your data is stored only on your devices and on the devices of people with whom you shared it).
Your ideas
So what do you think about this? If you think the idea or implementation is terrible or insecure, write it here.
I tried to make all steps as easy as possible but I think the UX still needs some improvement. If you have some UX suggestions, please let me know too.
The text was updated successfully, but these errors were encountered:
This is awesome! Is the idea to have a public signaling server, e.g. on laverna.cc, or do you encourage people to self-host?
I guess my only complaint for now is the hard Mongo dependency. Would be fantastic to be able to use Postgres instead. (Laverna/laverna-server#1)
After some testing I hit a couple bugs. I could get the 2 users to see each other, 2 separate browser instances on same machine, but sharing a note did not seem to work. I was able to send and accept the invite but not share the note.
Hi all,
I have just pushed code which implements peer to peer differential synchronization. Before implementing this, I tried several solutions but liked this because:
If you want to review the implementation check these:
For now it's not ready for production usage.
How to use
If you want to check the synchronization, you need to:
After you open the client, it will greet you with the page where you can choose a username:
Then, you can either upload your existing OpenPGP key or generate a new one:
After completing the registration process, you can start creating and then sharing your notes with others:
If you start using the app on other devices, all your data will be automatically synchronized between them. Other users will see only the notes you have shared with them.
Sometimes you can also choose to synchronize only a particular amount of notes with your other devices. To do that, just create another account (for example, wwebfor@android, wwebfor@desktop)
Several thoughts
So why did I implement this instead of fixing Dropbox, RemoteStorage synchronization. It's because I wanted to have collaboration support in the app.
Also the fact that the server-side still doesn't store sensitive information even in encrypted format is a bonus too (your data is stored only on your devices and on the devices of people with whom you shared it).
Your ideas
So what do you think about this? If you think the idea or implementation is terrible or insecure, write it here.
I tried to make all steps as easy as possible but I think the UX still needs some improvement. If you have some UX suggestions, please let me know too.
The text was updated successfully, but these errors were encountered: