Unhosted aims to decouple webapps from their backend storage on a per user level. The status quo is that each webapp stores and manages all of its users’ data. Unhosted wants to turn that on its head and let each user store their own data, across all of their webapps, in a single provider and account of their choosing.
The key piece of the puzzle is
remoteStorage
, a
new Javascript library that mirrors HTML5’s
localStorage
API and uses cloud
providers like S3,
Google Docs, and Dropbox. When
a user starts using an unhosted app, it determines where to store their data
(ideally behind the scenes via
WebFinger), gets
permission via OAuth, and then uses remoteStorage
to perform standard CRUD
operations.
Not surprisingly, the people behind Unhosted are hardcore
free software advocates, so the project comes with a
healthy dose of anti-corporate advocacy and preaching. However, it also comes
with a convincing technical foundation and
working code. In particular, reusing
localStorage
seems like a stroke of genius, especially since many developers
now use it exclusively when starting a new app, adding server side sync only
after they’ve finished their
MVP.
Naturally, there are problems. Want querying or aggregate operations? You’re encouraged to build your own, which is a tough sell for even simple queries, much less large scale data processing. Also, there’s no story for onboarding new users. They could punt and start by letting apps store their data for them, but that raises an awkward migration question.
Most of all, though, I think they’re missing a sales pitch. End user data portability may have gained some mainstream mindshare, but it’ll probably never reach a tipping point, and free software idealism will always be niche. More to the point, until users want it, I don’t see a motivation for app developers.
Even so, I’m intrigued. We originally considered structuring
App Engine‘s datastore the same way, clustered
by user instead of by app. Integrating Unhosted with App Engine would be fun,
but the app side is Javascript on the client, and the storage side already
supports Google Docs, so I’m not sure it would add any value. Anyone out there
currently working with remoteStorage
? Thoughts?
Oh, and happy New Year!
My thoughts are that I love it. This makes it seem kinda free to make small/medium webapps and toys. Sourcing the storage costs to the user and the processing to the browser. Double clever!
Hi Ryan. I'd like apps to store data in my account under my quota that way I could always own my data. It would also be an interesting billing option as an app wouldn't run out of quotas but rather a user. via Google+
@snarfed_org interesting that AppEngine was almost per-user! We hope GoogleData will add CORS soon, to achieve the same http://t.co/diXQmJJO via Twitter
Pingback: Ryan Barrett
Pingback: Ryan Barrett
Ryan Barrett mentioned this Article on snarfed.org.