de Jong takes Richard Stallman’s critiques of cloud computing seriously. But, he says, “People want to use websites instead of desktop apps. Why do they want that? I don’t think it’s up to us developers to tell users what to want. We should try to understand what they want, and give it to them.”
de Jong acknowledges the many advantages to running applications in the cloud: you can access your applications and data from any computer without installing software or transferring files. You can access your files from multiple devices without syncing. And web applications have better cross-platform support.
So how can you give users web applications while keeping them in control of their data?
The basic idea is this: an Unhosted app lives on a web server and contains only source code. That source code is executed on a user’s computer and encrypts and stores data on another server. That data never passes through the app server. Therefore, the app provider doesn’t have a monopoly on your data. And since that data is encrypted, it can’t be exploited by the data host either (or at least, it probably can’t).
The data can be hosted anywhere. “It could be in your house, it could be at your ISP or it could be at your university or workplace,” says de Jong.
“We had some hurdles to implement this, one being that the app cannot remember where your data lives, because the app only consists of source code,” he says. “Also your computer can’t remember it for you, because presumably you’re logging on to a computer you never used before.”
The Unhosted team solved the problem by putting the data location into usernames. Unhosted usernames look a lot like e-mail addresses, for example: firstname.lastname@example.org. Willy is the username, server.org is location where the data is stored.