It would be helpful to be able to sync charts between devices. In the past I've avoided this because I didn't like the idea of handling user credentials. Even though charts aren't sensitive data, under a login system many users would end up re-using passwords from other sites so I would still have an uncomfortable security burden. I think there's an alternative that would reduce my security liability:
the user is shown an "Enable sync" button
clicking the button displays two options: "Set up sync" and "Connect sync"
when clicked, "Set up sync" uploads all charts to a server and generates a string of around 10-12 characters
the string, which would be called something like "sync key", would be associated with the chart data on the server
the "Connect sync" option would provide a text input field for the user to input an existing sync key
inputting a valid sync key would 1) upload all local charts to the server, and 2) download all charts from the server
enabling or connecting sync would add a local store item called syncKey - when the site loads, it would use this key to fetch data from the server
Some challenges remain:
This would increase the cost of running the site. If it's in the range of another $5-10 I can handle it, but I really don't know how large the database would end up being. I don't want the site to get so expensive to run that I end up needing donations, which would add an unwelcome layer of complexity and commitment. I could roll out a rudimentary analytic feature that calculates the size in KB of each user's chart storage, sends it to the server, and cumulatively adds up what the size of the cloud database would be, but that sort of metadata collection feels icky even if it's narrow in scope.
What should happen if the user opens the site with sync enabled in two browsers simultaneously? Maybe syncing should be a manual option, like uBlock Origin's settings features, but the UX would suck. Maybe I should use WebSockets, but sync conflicts may still occur. It might make sense to rewrite chart actions in a more composable way that factors out any potential for conflict.
A sync feature would be the heaviest work on this site since the original chart code, and I wrote that when I was unemployed. I'm not sure if I'm really up to this, but an outside contributor probably can't do it because it would require a server connection.
It would be helpful to be able to sync charts between devices. In the past I've avoided this because I didn't like the idea of handling user credentials. Even though charts aren't sensitive data, under a login system many users would end up re-using passwords from other sites so I would still have an uncomfortable security burden. I think there's an alternative that would reduce my security liability:
syncKey
- when the site loads, it would use this key to fetch data from the serverSome challenges remain: