In my late teens I was obsessed with the concept of peer-to-peer software. Their decentralized nature and lack of control open up a lot of possibilities. I wrote a functioning photo sharing application in 2006 which was meant to be friend-to-friend. You would add a friend via a public key, and it would contact her computer and download the low resolution versions of the entire collection of photos and relevant data, such as tags, for offline browsing. If any of the photos looked interesting, she could stream it live (via progressive JPEG encoding) if the friend was connected, and could mark it for download so that she'd be notified once it was complete.
I worked on this software through 2008 but never got it to a point where it was compelling to use. While I left my desktop computer running at that time, many people would have laptops and so the odds of being online at the same time were rare. In hindsight I could have made it so that photos could be relayed through any mutual friends who happened to be online which would have alleviated the problem.
Last month I got around to trying the Bittorrent Sync application (hereafter referred to as btsync). This is a fully peer-to-peer program that otherwise works like Dropbox, which means that it has no monthly fees. It's just what I needed to back up some photographs on my parents' computers.