Features
For users
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
remoteStorage-enabled apps automatically sync your data across all of your devices, from desktop to tablet to smartphone, and maybe even your TV or VR headset.
Compatibility & choice
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.
For developers
Backend as a Service
Develop your web app without worrying about hosting or even developing the backend for it: your users will connect their own backend at runtime.
Infinite Scalability
No matter if 5 hundred or 5 million users are using your app, your backend scales automatically and never costs you a single cent.
Wheels Included
remoteStorage.js is a JavaScript library that does all the heavy-lifting of connecting to any remoteStorage backend, caching, synchronizing and storing user data.
Developer library
The remoteStorage.js library does most of the heavy lifting to add offline storage and cross-device synchronization to your apps. No more worrying about accounts, databases, passwords…
Setup
const rs = new RemoteStorage();
rs.access.claim('todos', 'rw');
rs.caching.enable();
const client = rs.scope('/todos/');
Write an object
// Declare an object type to validate if you want (JSON Schema)
client.declareType('todo-item', {});
// Write `{"id":"alfa","done":false}` to /todos/alfa.json
await client.storeObject('todo-item', 'alfa.json', {
id: 'alfa',
done: false,
});
Get objects
const specificItem = await client.getObject('alpha.json');
const allTodoItems = await client.getAll();
Add the Connect Widget UI component
Use our drop-in UI widget for connecting remote storage accounts.
const widget = new Widget(rs);
widget.attach();
Read the documentation Protocol details
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 | 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 | Some community members are hanging out in #remotestorage on Libera.Chat — say hi! |
Twitter / Fediverse | Follow the project on Twitter or on the Fediverse, to receive updates on releases, events, apps, and related news. |
Mailing List | A monthly digest about remoteStorage apps, tools, and decentralized news. |
Events | Meet people in person at conferences, hackathons, camps, and other gatherings. |
We would love for you to get involved — check out What can I do for remoteStorage? for some ideas.
Thank you to our contributors!
… and everyone not listed here!