The most popular apps at the moment are probably Litewrite and Laverna. The latter is in the middle of a rewrite and currently has rather outdated RS support, but people still use it with RS, because they like the option so much.
My personal favorites are my own apps, of course: Webmarks and Sharesome. I wouldnāt consider adding SAFE support, though.
Generally speaking, the amount of apps is still small, while weāre progressing slowly towards a stable spec as well as 1.0 of our client library.
I think remoteStorage is a great feature, but as with SAFE, there is problem getting it adopted, and I guess the IdieHosts is a recognition that giving users control over where their data is hosted is not going to be easily solved with a handful of new apps when most users are going to want the massive range of apps available on existing hosting. Step one was I guess things like Softaculous, and hopefully IndiHosts can add to this on the migration side.
Much as I like it, I think its difficult to āsellā remoteStorage to app developers or to hosting services. Iām still going to consider adding support for it on SAFE though, so long as it is fairly straightforward - fingers crossed :-). Iām also looking at noBackend and offlineFirst frameworks, as well as CouchApps. My aim is to simplify building web apps, and make it easy for devs to port or write for this new backend. If you know of any others I might consider, please let me know - Iām not very knowledgable here so researching from scratch.
As for your apps, well I might add SAFE support myself ;-). Thanks again for your help.
If you can add remoteStorage support to SAFE itself, thatād be super-uber awesome!
I havenāt really looked into how SAFE would integrate in web apps, but in remoteStorage.js we do have experimental support for other backends, namely Google Drive and Dropbox, which we want to stabilize. Iād like it infinitely more if it were possible to proxy to SAFE via a standard remoteStorage API, but if itās fairly straightforward (and possible), we could add support for that backend to the library as well.
Frankly, I have not only heard of SAFE, but I was quite excited at first. Unfortunately there was nothing to see for so long, that I lost interest mostly. Glad to see itās alive and you guys are reaching out to developers.
Iāve been looking at the API and so far it doesnāt look onerous to extend to SAFE as it provides a RESTful API (being implemented by the team right now, so details will be available soon).
Iāve not looked at the remoteStorage.js code yet, but from the API docs what I understand is that I would add a WireClient class (SAFE), which appears only to mandate the #get/#put/#delete methods which is good. There are potential limitations I think regarding SAFE because it is a key/value store rather than a filesystem, but we should be able to implement something useful. Let me know if what Iāve written is rubbish!
Forgive me if you already know some of thisā¦ SAFE has its own internet protocols (for routing, DNS etc) and is not part of the web. So to access SAFE storage would require the user to have a SAFE client running and authenticated, and to use a web browser with a plugin that understands SAFE URLs (e.g. safe://blah as opposed to http://blah). The latter will be built by MaidSafe, leaving us just needing to add the required backend classes to your RemoteStorage library. Iām not committed to doing this, just evaluating at this point.
Iāll take a look at the RemoteStorage code next, and then probably disappear for a while to look at other web app frameworks.
The idea of a proxy would be that you have a remoteStorage API in front of SAFE via a server program that can speak the SAFE protocol. That way it would just be entirely compatible with plain remoteStorage, as long as youāre using an account on such a server.
Thatās okay, because remoteStorage is also just a key/value store, yet with the additional feature of directory listings in JSON.
Nice post - I didnāt think to search for MaidSafe hereā¦ doh!
If the proxy ran on the client that would be ok, sortof, but having it on a server defeats the security and anonymity provided by SAFE. Weād have to call it an unSAFE proxy
It would also not be easy to implement, because the proxy would have to be a SAFE node logged in as the user, exposing his SAFE credentials as well. Reallly not good. A browser based solution that keeps the SAFE client and user credentials on the client machine is best I think.
Alright, will wait for Web access to be released then.
If you want to implement it as an additional backend in remoteStorage.js, weāll gladly help you do that. The library is a bit rough still and needs refactoring in a lot of places, so if somethingās unclear, undocumented or not working as expected, just ask us here on the forums or in #remotestorage on Freenode anytime.
Iāve just had a peek at your dropbox.js and it seems to confirm my wild assumptions about what would be involved, and given the equivalence between the get/put/delete interface you require on a remoteStorage.backend with SAFEās REST API Iām assuming its easy (no doubt a bit rash but hey!)
It will certainly be worth me trying to implement this in conjunction with MaidSafeās work on the browser extension and it will be very neat if I can use it to run the RS apps from the list you gave me. We could have them ready for the SAFE launch.
You should also be aware of the fact that weāre in the process of extracting the widget and implementing a new design for it (which we already have) in order to optimize it for use with multiple backends. Multi-backend support is still an experimental, hidden feature and not integrated into production apps currently. I hope we have this ready within the next few weeks, but it might take a little bit longer.
Thanks, all good. I think weāll be fine whether ready or not. You can see the latest SAFE Network development roadmap which is due to have more detail (but no dates, we donāt do dates :-)), though detailed progress is visible in the maidsafe repo, which all have their own todo lists. Lots of PRs going on and libraries building - all ported to Rust in a few weeks - which has produced lots of benefits over the old C++.
@raucao Iām revisiting this as SAFEnetwork (MaidSafe) has started running testnets and app developers are getting live access to the SAFE APIs. I havenāt much time but would love to try creating a simple CMS perhaps based on an existing remoteStorage app if I can find the time or more likely, some helpers over at the SAFEnetwork forum. Doing a quick search I see Laverna looks interesting - if you know of any others I should look at please let me know.
Anyway, the reason for this post is to ask about the status of remoteStorage - particularly as there has been so little activity here on the forum. Above you mention some re-factoring of the protocol, an experimental multi-backend etc. Can you give me a very brief update?
Iām not sure I understand your question really. What exactly is it that youāre looking for? You want to port apps with RS integration to use MaidSafe instead?
Again, not sure what the exact question is here, so Iām just going to answer the points you mention:
The protocol is seeing ongoing improvements and a new draft is published every 6 months. We just launched a new wiki, incl. a page about the protocol/spec: https://wiki.remotestorage.io/Protocol
Other than that, if you havenāt seen it yet, thereās now a server written in Rust, which might interest you, as MaidSafe is mostly written in it afaik. Also, php-remote-storage is now stable and up to date, so itās our new recommended solution for self-hosting.
FYI I would need to extend remoteStorage.js to add support for the SAFE API (which would be on the client - accessed over an http proxy provided by an app which the user runs called, SAFE Launcher).
With that, obvs any existing apps would be able to use the userās SAFE storage like a personal cloud server (from any device they use which is running the SAFE Launcher).
I would then be looking to build a CMS application that uses remoteStorage, and this would then provide a CMS for SAFE Network users (as well as users using other remoteStorage servers).
Since my post above Iāve found Litewriter as well as Laverna, so either might be useful. Also, I found some other tools that Iāve yet to look into which might also be useful in creating a website CMS: http://createjs.org and http://hatchjs.com/ (though the latter uses Redis so might be one for later
So Iām still trying to work out options, and then will look more into getting remoteStorage.js working with the SAFE API. Fingerās crossed it has everything we need.
Ah, got it. So basically like we add Dropbox and Google Drive as options. Would actually be an exciting new option I think, as itās both another open-source one, as well as the first one using a completely decentralized network as storage back-end.
Thereās not really a CMS app based on RS yet. @michielbdejong was publishing his website on his storage in the past, and someone once created a TiddlyWiki RS integration iirc, but Laverna and Litewrite are note-taking apps (although Litewrite does have a share/publish option, so I guess one could call it a lightweight CMS for simple text content pages).
Let us know if/when we can help with that anytime!
Thatās why I need to create one I thought those were worth looking at to bootstrap me, and perhaps adapt. I have very little time available so will do quick and dirty and hope it gets others on board once they see what can be done and I can give some guidance.
@raucao where would you recommend I start with adding SAFE Network support to remoteStorage.js ā¦ github? Is there an guide on extending remotesStorage.js I can read.
Iāve found most of the docs including the API (here) but I havenāt yet found the code I know I saw previously for adding support for other services (Dropbox and Google Drive I think) which I think would be a good place for me to start. Do you have something like this?
If you search the whole src for dropbox you will also find some widget code which goes around and calls the connect function from the Dropbox class, when the Dropbox icon is clicked in the current widget. All of that is going to be removed, but the general concept (i.e. implementing a connect in the custom backend class) will stay the same.
A small step, mostly me learning about remoteStorage.js so far but I have made a copy of the Dropbox backend into a placeholder for me to sprinkly in the SAFE API (which I have to learn about too! ). Details and repo links here: