Hi!
Just as a write-up of some ideas we discussed yesterday at the Decentralize Hack Day in Paris.
# Decentralizing Mozilla Services
Mozilla offer a whole bunch of services:
https://wiki.mozilla.org/Services/. It would be nice to have one package which you can deploy to your own server, and then have one place in Firefox settings where you can enter the domain name of your "personal Mozilla server", so that all your data will go there instead of to Mozilla.
We worked on this and made quite a bit of progress. We'll keep on working on both this server image, and the dialog for this central "use my own server" setting. The simplest way would probably to write an addon for this.
# Making Mozilla Services (specifically, Sync) use remoteStorage [cancelled]
We talked about this, but concluded it was probably both undoable and useless. Given the number of other services, making Sync use remoteStorage hardly helps anyone; at most, some people would need to install maybe 7 services instead of 8, to get their "own Mozilla server" complete. Since it's impossible to move all Mozilla services onto remoteStorage, moving only one of them is pointless. So this idea was cancelled.
# Integrating remoteStorage more deeply into Firefox OS
There are several ways this would make sense.
(1) At the lowest level, you can simply make an app that (with elevated privileges) takes a backup of your phone and stores it on your remoteStorage account.
(2) A bit more high-level, would be an functionality that uses a remoteStorage account to sync IndexedDB, localStorage, and Cookie data between devices, so that if you have the same app open on two devices, it acts like you have it open in two tabs or windows on the same device.
(3)And at the highest level, the device could include (3a) sync/cache and (3b) widget functionalities of the remotestorage.js library.
(3a) Doing the sync/cache at the device level instead of inside each app has the advantage that data is stored only once, and is already available locally when you open a new app that is based on remotestorage.js. This saves both bandwidth and storage space.
(3b) Moving the widget functionality (connecting / disconnecting your remoteStorage server, and displaying sync status and errors) from the app down to the device itself has the advantage that it frees up valuable screen space in the app.
CC-ing Alexis and Tarek. Comments welcome!
Cheers,
Michiel.