Sharing is pretty huge, but can you say what exactly you mean by “a secure way”? Do you need a way to guarantee that only specific people see your graph, and that those people would have to have beeminder accounts themselves (to ensure you’re sharing with only those you intend)? If you just give the URL of your graph to those you want to share your goal with, that may be the best of all worlds, unless you’re super paranoid about the URL falling into the wrong hands. That’s our own philosophy, anyway. Others may have different privacy needs so we’re eager to hear more feedback on this.pjf commented
@dreeves: I know plenty of people who would go around guessing URLs, myself included. There doesn't even need to be malicious intent there, it can just be curiosity. When I heard that a friend was using beeminder to track savings, my first thought was "what a good idea; I wonder how she's going?"
Of course, at the moment there's no need to guess URLs for public goals, they're visible on a user's goal page, as they should be. And they'll *definitely* get stumbled upon, especially if one has been tweeting about beeminder, has written a testimonial, or has been talking to friends excitedly over coffee. ;)
Knowing that there's no way to retrieve a graph of a "secret" goal is good, and how it should be. I'd even suggest you don't even reveal that secret goals exist at all on the user's public goal page. The first step in keeping a secret is not to reveal that the secret exists in the first place. :)pjf supported this idea ·pjf commented
@dreeves: Wait, are we saying that graphs are currently *always* viewable if you know the URL, even if they're marked as "private", and even if you're not signed in? If that's the case, someone will cheerfully add a dictionary to a username and start brute-forcing out graphs.
I certainly have potential goals which are *not* going to work better if they're in public, simply because I'll never-ever use beeminder for those goals if there's a risk of them being publicly visible. However these private goals may be ones I wish to share them with a few trusted friends.
Easy ways to implement a sharing system include:
* Allow the generation of a "sharing URL" (which cannot be guessed) for a private graph. Make sure that sharing URL can be revoked at any time.
** Bonus points if you can create many sharing URLs on demand and give them labels. This selectively allows me to revoke access.
* Allow the idea of "friends" on Beeminder, with graphs having a Public/Private/Friends-Only access control.
** Bonus points if you can select which friends can view a graph, as opposed to all friends.
* Using existing auth services (such as Google and Facebook) to allow explicit sharing with particular users. This strikes me as the best solution, because this allows friends to observe graphs with a minimum of fuss.
* Bonus points for allowing friends to opt-in to a daily e-mail of graphs they're watching, or even just getting an e-mail if a friend has hit the wrong lane of the YBR.
* Lots of bonus points if you allow sharing of data points, but *notes* to be kept private. I might want to have a friend see my progress, but not have them see my private notes along the way. This last one is particularly valuable to me, as I often want to keep personal notes as to why I've been successful or unsuccessful in working towards a goal.