Dave Winer wrote an interesting piece, Where’s the app, that describes the current state of application data storage in the web era.
In short, if you want your web app to store data, you have to go through a service like dropbox and use their APIs, and they will deal with making these data available to you and your app.
Dave writes about application data that resemble, more or less, files and dropbox is quite good at it. However, I think that we need a new kind of web storage. Something that is not based on the filesystem paradigm, but the (oh, my god, I can’t believe I say this...) windows regisrty.
I would like to be able to set up a service on my own server that provides endpoints for any app to store and retrieve data.
For example, my browser could store history and bookmarks, my podcatcher my subscriptions and the the audio files I’ve already listened to, my ebook reader could store bookmarks and annotations, any app (web, mobile, desktop) could store settings and preferences...
I would like to do things like
- tell Fargo to store my data at vrypan@storageserver:/mynotes
- set iTunes (yea, right) to get my podcast subscriptions from vrypan@storageserver:/rss/podcasts and I would add new podcast feeds there using a bookmarklet that had access to the same URI
- setup my kindle to keep annotations at vrypan@storageserver:/annotations and have a cron job read them and publish them to my blog.
- setup my wife’s TODO iPhone app and mine to read and write a shared grocery list to vrypan@storageserver:/lists/home
Things like that.
Some or all of the above can already be done one way or another. For example, some TODO apps let you share lists with other users. Google Chrome can sync preferences and passwords across machines. iTunes try to sync your devices using iCloud. But in most cases it is done using a proprietary mechanism and the app vendor controls the data storage and access.
A couple of years ago, I started a project called simplesto (for simple storage), but I never took the time to do something meaningful out of it.
Then iCloud was announced, and it’s APIs were supposed to provide at least part of the functionality I described above, but it doesn’t look like it’s taken off -and cloud services are not Apple’s best.
To be fair, Dropbox APIs are the closest we have, but they are based on the filesystem paradigm. I can’t stress enough how much I love Dropbox as my distributed filesystem, but it’s a filesystem, not a generic data storage. And I can’t set up my own Dropbox server.
I still feel there is a need for a web storage service, that would expose a simple (RESTful?) and open API. It doesn’t have to be open source, if the API is open and simple, we can have open source implementations for anyone who wants to run their own server and hosted solutions for everyone that would like someone else to take care of the hosting.