johannesjo / super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.
http://super-productivity.com
MIT License
12.07k stars 941 forks source link

Add Evolu as Sync Provider / Revisit Sync Data model #3139

Closed negue closed 2 months ago

negue commented 7 months ago

Problem Statement

I recentely came across of Evolu, it is an embedded SQLite Database, where each database entry is synched end to end encrypted to any other instance using your private key. You can host your own simple server or use Evolu's free one, maybe at some point there will be P2P as well, who knows what the features will bring :)

I thought I could try to add it, but it seems right now that the syncs are only based on "collect all data into one file and sync that one", Evolu can handle json files as a data column but I think it would be better to upgrade the sync provider to be able to handle each note/entry alone, then evolu could be used a bit more "normally" 😬 (and less data needed to change one item instead of a big json of all data ^^ )

:grey_question: Possible Solution

:arrow_heading_up: Describe alternatives you've considered

:heavy_plus_sign: Additional context

github-actions[bot] commented 7 months ago

Thank you very much for opening up this issue! I am currently a bit overwhelmed by the many requests that arrive each week, so please forgive me, if I fail to respond personally. I am still very likely to at least skim read your request and I'll probably try to fix all (real) bugs if possible and I will likely review every single PR being made (please, give me a heads up if you intent to do so) and I will try to work on popular requests (please upvote via thumbs up on the original issue) whenever possible, but trying to respond to every single issue over the last years has been kind of draining and I need to adjust my approach for this project to remain fun for me and to make any progress with actually coding new stuff. Thanks for your understanding!

Jagdfalke commented 7 months ago

I'm not sure if I understand Evolu correctly. But couldn't you just use local file as a sync option and automatically import that into Evolu?

negue commented 7 months ago

WebDAV/Dropbox are more File Based Storages, while evolu is more of a database that is sycned, that why using it as "only a json file to be synced" might waste at some point traffic if only 40 of 1000 items in that json are changed xD

If SyncProviders could get a more granular callbacks (instead of the whole json file) then I'd give it a try to add evolu myself^^ , but thats still above my knowledge how many files would need to be changed "just" for that

johannesjo commented 7 months ago

Thanks for the suggestion! Looks interesting! This would require a large scale migration. For that I need a lot of free time and I would need to be a bit more sure about Evolu, so some testing is required. It looks promising, but these kind of systems rarely come without drawbacks. Performance could be problematic for example. There could be bugs. Also development is done mainly by only one person. There is no guarantee that the project will be maintained in the future. But I promise to have a look, if tackle the subject again.

github-actions[bot] commented 3 months ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!