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
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
permission via OAuth, and then uses
remoteStorage to perform standard CRUD
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
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,
supports Google Docs, so I’m not sure it would add any value. Anyone out there
currently working with
Oh, and happy New Year!