remoteStorage
An open protocol for per-user storage on the Web
Own your data
Everything in one place your place. Use a storage account with a provider you trust, or set up your own storage server. Move house whenever you want. It's your data.
Stay in sync
In the autumn Reuben bought ten more acres of Boarzell—a better piece of land than the first, more sheltered, with more clay in the soil. Hops would do well on the lower part of it down by the brook.He leaned towards her over the back of his chair. remoteStorage-enabled apps automatically sync your data across all of your devices, from desktop to tablet to smartphone, and maybe even your TV.
Compatibility & choice
Sometimes Reuben would ask himself if he was in love with her, but as the physical element which he had always and alone called love was absent, he came to the conclusion that he was not. If he had thought he loved her he would have avoided her, but there was no danger in this parliament of their minds. Her attitude towards life, though it obsessed him, no more convinced him than his convinced her. They would rail and wrangle together by the hour."Yes, that's it—instead of spending twenty minnut at your breakfast, you spend forty. You idle away my time wud your hemmed tricks, and I w?an't have it, I tell you, I w?an't have it. Lord! when I wur your age, I wur running the whole of this farm alone—every str?ak of work, I did it. I didn't go wasting time over my meals, and writing rubbidge fur low-down Gladstone p?apers. Now d?an't you go sassing me back, you young good-fur-nothing, or I'll flay you, surelye!" Use the same data across different apps. Create a to-do list in one app, and track the time on your tasks in another one. Say goodbye to app-specific data silos.
Go offline
Most remoteStorage-enabled apps come with first-class offline support. Use your apps offline on the go, and automatically sync when you're back online.
Unhosted Architecture
remoteStorage is the first open protocol to enable truly unhosted web apps. That means users are in full control of their precious data and where it is stored, while app developers are freed of the burden of hosting, maintaining and protecting a central database.
Traditional Web Apps
The two men met in the kitchen, Peter backing up his father, and for a long time the scene was stormy, the word "roots" whirling about the conversation, with the prefix "my good" or "your hemmed" as the case might be. Realf was genuinely angry—Reuben's attitude of mingled truculence and scorn had wounded even his easy pride.
Developer hosts app and data,
user controls device.
No-Backend Web Apps
Oh why is a Gate stuck across at this Spot?
Developer provides app and data,
user controls device.
Unhosted Web Apps
"Oh, he d?an't mind who it is, so long as the work's done."
Developer provides app only,
user controls device and data.
remoteStorage Protocol
The next day a fresh poster appeared, printed this time in flaming red letters: remoteStorage is a creative combination of existing protocols and standards. It aims to re-use existing technologies as much as possible, adding just a small layer of standardization on top to facilitate its usage for per-user storage with simple permissions and offline-capable data sync.

Discovery: WebFinger
In order for apps to know where to ask permission and later actually sync user data, users give them a user address, basically like with E-Mail or Jabber/XMPP. With that address, apps retrieve storage information for the username on that domain/host.

Authorization: OAuth 2.0
User data is scoped by so-called categories, which are essentially base directories, for which you can give apps read-only or read/write permission. Apps will use OAuth scopes to ask for access to one or more categories.
In the example screenshot, Litewrite
is asking for read/write access to the "documents" category, using
the OAuth scope documents:rw
. If you allow access, the
app will retrieve a bearer token, with which it can read and write to
your storage, until you revoke that access on your server.

Data Storage & Sync: HTTP REST
remoteStorage defines a simple key/value store for apps to save and retrieve data. The basic operations are GET/PUT/DELETE requests for specific files/documents.
In addition to that – and the only special feature aside from plain HTTP – there are directory listings, formatted as JSON-LD. They contain both the content type and size, as well as ETags, which can be used to implement sync mechanisms. The files and listings themselves also carry ETag headers for sync/caching and conditional requests.
Community
remoteStorage is a grass-roots standard, developed completely in the open, by the community for the community. Countless individuals have contributed in one way or another over time, and we'd love to welcome you as one of them!
GitHub
GitHub is where we collaborate on the protocol specification as well as all common source code.
Forums
Our community exchange and support site for everybody from users to developers to providers.
IRC
Many community members are hanging out in #remotestorage on Freenode. Say hi!
Events
Meet people in person at conferences, hackathons, camps, and other gatherings.
Get involved!
Want to make the world better by supporting RS in some way? Check out What can I do for remoteStorage? on our wiki.