It is finally done: last night, on the 7th birthday of the remoteStorage.js Git repository, we tagged and published version 1.0.0 of remoteStorage.js, the reference JavaScript client for integrating remoteStorage into Web apps.

Between last year's 0.14.0 and yesterday's 1.0.0, 6 authors have contributed 619 commits; restructuring the codebase, fixing bugs, enhancing features, improving the public API, and documenting code and usage. Thank all of you, for every single line of it!

remoteStorage is the first (and currently only) open standard 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.

remoteStorage.js is a JavaScript library for storing user data locally in the browser, as well as connecting to remoteStorage servers and syncing data across devices and applications.

Highlights

Layout, builds, ES6

This release marks an important milestone for our small community project. Thanks to @les and the other contributors involved, the library layout has been improved considerably and is now using JavaScript modules across the codebase. It is also packaged into a single UMD build for all environments and use cases now.

With the new build system also comes the possibility of using new JavaScript language features (ES6 and beyond), and the refactorings have already begun.

Data modules are now npm modules

With npm having become the de-facto package manager not just for node.js, but also front-end JavaScript libraries (with 3rd party clients available, such as Yarn for example), we decided it's time to finally make use of this powerful idea for publishing and managing rs.js data modules. As expected, the experience has been nothing but positive so far, and we think you will love it.

New connect widget add-on, support for Dropbox & Google Drive

We completely removed the connect widget from the core library in favor of creating public APIs for anything that is needed to build your own user interface. However, we also had a great community effort to design a new connect widget as an add-on library, which also incorporates a screen for choosing between multiple storage backends.

In fact, remoteStorage.js now officially supports optionally connecting a Dropbox or Google Drive account, instead of a remoteStorage one, so your app can appeal to a wider audience, and users can switch to remoteStorage whenever they're ready for it. And the new connect widget thus includes design elements for those backends as well.

Documentation

Last but not least, we finally got our documentation in order for good. There's a whole new documentation site, which combines all of the different docs we had before. It's based on ReStructuredText and Sphinx, and you can find all of it in the doc/ folder of the repo as well.

We also switched the code documentation from NaturalDocs to the more suitable JSDoc, and we're using sphinx-js to pull that into the new combined docs.

One good idea that projects like Rust and TypeScript have been doing, is to provide a short summary of what the project is with release announcements, for those who come across it for the first time. Might be a good idea to add that here? For example (from the front page):

remoteStorage is a Javascript library implementing the first (and currently only) open standard 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.

Good idea. It's why the first paragraph says "the reference JavaScript client for integrating remoteStorage into Web apps." But I guess that's not very detailed or informative for people who don't know what remoteStorage is in the first place.

Edit: I added a blurb to explain both RS and rs.js to newcomers arriving here (one is quoting the RS website, the other is from the lib's README). Thanks again for the suggestion!