The Next Web
Recently, I've started to get really frustrated by what the web is becoming. It seems that everything is going to become more and more centralised. Google and Facebook currently control a huge amount of the world's communication systems. Everything seems to move "to the cloud", which is provided by a few large companies. Many businesses stopped using local installations of Microsoft Office or OpenOffice, putting everything on Google Docs instead.
And on the mobile world, people are using WhatsApp - yet another centralised service.
And then - you get to see stories like this. If your email is hosted for free at google, they can shut it down at any time. You don't pay them, they don't have to continue the service. The guy in the above article fortunately got his account back, but you still see what problem it might pose.
In parallel, governments are trying to spy on you more and more. There's a lot of work going on to pass laws all over the planet to either enable them to monitor your traffic, or legalizing what they're doing already anyway.
So what do we learn from this? What I want for the next generation of the world wide web - or mainly the communication services, is to become a web again.
I want the web to be distributed again. Distributed not only in a technical way, but distributed in organisation as well.
The web's distributed nature currently only serves to provide global load-balancing to some big companies. I want the web to be fully distributed, with nobody anywhere having an excessive amount of control. And happily, I think our networks are advanced enough to actually support it.
Bittorrent, for example, is more or less completely distributed. It's based on distributed hash tables, which, when implemented properly, work without any centralized service. Bittorrent does this using something called Peer Exchange, so centralised trackers aren't neccessary anymore.
Now how could you implement something like this without installing a local client? Surely users won't download and install programs if you could just as well surf to a website like facebook.com? Again, we already have the technology here. Many modern web applications don't have to be connected anymore to run - they cache everything locally. Oh, and then you have modern browsers like Chrome and Firefox that allow you to install web apps locally - just like you install apps on your mobile phone.
If you're a Windows or Mac user, both now have so-called app stores where it's easier than ever to install apps locally - no more need to browse those dubious download sites and gambling on which download buttons is the correct one.
Many people already use facebook or Google+ using their mobile apps instead of the web application. So why not use our new client in the same way?
Get to the point!
Okay, okay. What I really want is this: A social network / email / instant messenger that doesn't depend on any single central service. You could generate your identity just like you do already when you're creating a new SSH key. You can "friend" other people by giving them your public key - therefore enabling them to send encrypted messages to you. Message distribution could happen via a protocol similar to Bittorrent.
Of course, since we're distributed, we need strong crypto. It's not the main selling point, but just a neccessity in this scheme. Most people won't care about it, so don't even try telling them how secure it will be.
Last question: How can someone reliably get your public key when you decide to be "friends" (in the facebook-ish meaning)? There are a few solutions, and a viable client should support as many as possible. Some keywords: NFC, QR Codes, trusted friends...
Getting it going
So what's stopping us from getting it done? Technically? Nothing really. The problem, in my opinion, is getting people to use it. Even if you had the most kickest-assest app, why would anyone install it? "My friends all have facebook and whatsapp already, why bother?"
"It's secure, you know, governments can't spy on you, yadda yadda" - People just don't care. There must be something else. Oh yes, and "No central company controlling it" won't cut it either. Sorry.
As soon as there's something that this decentralized approach can provide that any of the centralised services don't have yet, we should get it going ASAP. But until then, unfortunately, it wouldn't be more than a tech demo that would - at best - be used by some hackers and freaks.
If you have any idea how to fix this problem, let me know. I'm really interested!