remoteStorage syncadaptor plugin

287 views
Skip to first unread message

Giovanni Parra

unread,
Feb 21, 2018, 3:08:19 PM2/21/18
to TiddlyWiki
I've just created this remoteStorage plugin that autosaves individual tiddlers to a remoteStorage server and would like to get some feedback and perhaps some people using it.

I'm just starting to use TiddlyWiki myself (I wrote the plugin before starting to use it), so please forgive me if I've misunderstood anything about the principles that guide this community.

The basic idea is that your tiddlers will be saved on /public/tiddlers/<folder-name>/, but you can make it non-public (so /tiddlers/<folder-name>/) and change <folder-name> to anything in the config tiddler. By default it is "main".

Along with the plugin, I've made available a server on https://tiddly.alhur.es/ that will serve you with an empty TiddlyWiki with just that plugin installed. After you connect your remoteStorage account you'll get your tiddlers downloaded automatically and on-demand from your remoteStorage and will be able to browse and edit them normally.

If your remoteStorage account is mys...@5apps.com and your tiddlers are saved under /public/tiddlers/something/ you can also point people to https://tiddly.alhur.es/mys...@5apps.com/something/ and they'll be browsing your wiki in no time.

See, for example, https://tiddly.alhur.es/fia...@5apps.com/main/#Hello

For more information (probably nothing that I haven't written here), see the GitHub repository.

BurningTreeC

unread,
Feb 21, 2018, 3:20:28 PM2/21/18
to TiddlyWiki
There you go with your first star on your GitHub repo! :)

I think I haven't understood all the possibilities your plugin adds, but it sounds and looks very cool!

Would you mind to explain in non-developer words a little bit of what you can do with remoteStorage?

all the best,

BTC

Giovanni P

unread,
Feb 21, 2018, 4:11:25 PM2/21/18
to tiddl...@googlegroups.com
The idea behind remoteStorage is to decouple the app provider from the storage provider.

In a normal app today, Google Sheets, for example, Google provides both the app (the actual spreadsheet app) and the storage (the content you type into the spreadsheet is stored on Google servers), the app is thus hopelessly tangled with the store.

remoteStorage is a protocol (really just some data formats and endpoints) that storage providers and app providers can adhere to so the app becomes untangled from the store, enalbing the end-users to use the same app with different storage providers and/or pass the stored data from one app to a different app that will use it somewhat differently.

How close this was to an explanation a non-developer can understand?
Let me try again with an example:

In this case the APP is TiddlyWiki + remoteStorage plugin.
The DATA is the collection of tiddlers you produce.
The STORES are any server that talks the remoteStorage protocol, 5apps.com, CozyCloud, IndieHosters or a server you can run yourself.

Separatedly, there's my https://tiddly.alhur.es/<address>/<namespace> server. We could say it is a different APP that uses the same DATA, fetching it from the one of STORES the user wants.

Later, someone can write a different APP that will use the same DATA, for example, an app that will download all the tiddlers from a remoteStorage namespace and produce a single TiddlyWiki HTML file, or a bunch of HTML files in static fashion like https://tiddlywiki.com/static/TiddlyWiki, or something else entirely.

(TiddlyWiki already supports multiple types of storage, but since they aren't remoteStorage-compliant we aren't concerned with them right now.)

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/e-sUhUYBUOk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+unsubscribe@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/9b772a39-e201-4857-bf61-649786a50b55%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

BurningTreeC

unread,
Feb 21, 2018, 4:42:12 PM2/21/18
to TiddlyWiki
Thank you, Giovanni!

Now it's much more clear to me - and it confirms that it does what I wished it would!

Could it also handle more storages than one? let's say $:/tiddlers/like/this -> storage1, $:/tiddlers/like/that -> storage2 ?
It's just an idea, I think it's already very cool what you've made!

BTC

Tristan Kohl

unread,
Feb 22, 2018, 2:38:55 AM2/22/18
to TiddlyWiki
Hi Giovanni,

this is awesome! Just when I came into problems with my many small wikis using up all my storage and started digging into some TiddlyWeb setup for myself to solve this you came as my saviour :)

I heard of remoteStorage before but never used it to be honest since there were not so many apps that brought me any benefits.

I will definitely check this out and finally use my years old 5apps account for something useful. Thank you so much for this.

Cheers,
Tristan

BurningTreeC

unread,
Feb 22, 2018, 4:16:25 AM2/22/18
to TiddlyWiki
Hi Giovanni,

can this be set up with local files, too?

forgive me, I'm not aware if there are limitations in local file-access

BTC

Tristan Kohl

unread,
Feb 22, 2018, 5:11:55 AM2/22/18
to TiddlyWiki
When opening your files from your hard drive via the file:// protocol this might be an issue since Firefox does not allow http requests than. I would just use an always on static server to host single file wikis via caddyserver and store everything to remoteStorage.

I am trying to setup this myself right now so no guarantees.

Cheers,
Tristan

BurningTreeC

unread,
Feb 22, 2018, 5:22:24 AM2/22/18
to TiddlyWiki

When opening your files from your hard drive via the file:// protocol this might be an issue since Firefox does not allow http requests than. I would just use an always on static server to host single file wikis via caddyserver and store everything to remoteStorage.

I am trying to setup this myself right now so no guarantees.

Thank you tristan, I'll give it a try

If this means that it works on chromium or TD I'm totally happy

I'll test, I'll report


Giovanni P

unread,
Feb 22, 2018, 4:26:31 PM2/22/18
to tiddl...@googlegroups.com
BTC: are you talking about (a) different storage providers/accounts or (b) different "folders" within the same storage provider?

If (b), yes it could be done quite easily. Currently you can alternate between folders by changing $:/plugin/fiatjaf/remoteStorage/namespace (or something like that) in the config tiddler. There could be a custom configuration that used prefixes (or perhaps a custom function?) to determine the folder. I don't know what would be the best UI to implement this, but sure it is possible.

If (a), then yes, but implementing it would be cumbersome since the remoteStorage JS client currently assumes you only have one remoteStorage server. There's an issue open to address this behavior there: https://github.com/remotestorage/remotestorage.js/issues/991, but this could be implemented with a different client, or just using raw HTTP requests to the remoteStorage server.


--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/e-sUhUYBUOk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+unsubscribe@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

TonyM

unread,
Feb 22, 2018, 5:52:08 PM2/22/18
to TiddlyWiki
Giovanni,

I am not immediatly in a position to test this but the following questions arrise;
Can I host remote storage on cpanel accounts?
How will it deal with multiple users both view and edit? Similtaniously or serialy.

Have you seen noteself?, It can also use a pouchdb inside the browser session so changes can be saved locally to the browser even before the equivalent of remoteStorage (couchdb) is connected to. This method may work well with your solution.

I hope your solution fits well with tiddlywiki because we still have some gaps in hosted tiddlwikis.

Thanks for your contribution.

Regards
Tony

Giovanni P

unread,
Feb 22, 2018, 9:45:17 PM2/22/18
to tiddl...@googlegroups.com
Yeah, Tristan. I'm also the owner of a very old 5apps account, I always liked remoteStorage, but had never seem any useful apps that supported it. I wish I could say nowadays the situation is different, but still there aren't many useful apps on https://wiki.remotestorage.io/Apps (besides the 3 micro apps I've published recently, which are probably useful to me only).

Incredibly enough, there are lots of people using the protocol and working on the client 10 years after, and everything works quite nicely. I guess it's just waiting for more cases that match very well with the idea, like TiddlyWiki, to discover it.

Please let me know what you think of the plugin and whatever.

Tristan Kohl

unread,
Feb 23, 2018, 11:27:12 AM2/23/18
to TiddlyWiki
Hi Tony,

my knowledge about remoteStorage is a bit rusty as I did not use it for a few years and almost forgot about it. But as I remember the remotestorage library works pretty much like pouchdb as it connects to a remote server and syncs itself with it when going online. All changes made offline are preserved and will be changed when there is a connection established. I think from the point of multiple users it behaves as pouchdb (NoteSelf) so any shortcomings there apply here as well as both are wrapers around a sync mechanism for the local IndexDB and the rest is handled by TW.

I would say NoteSelf and this plugin do pretty much the same thing the only difference being that they talk to different backends (remoteStorage or CouchDB).

I do not know anything about cpanel but judging by a short look at the homepage it is a linux hosting so running your own instance of a remoteStorage server should be a easy..

Cheers,
Tristan

@TiddlyTweeter

unread,
Feb 23, 2018, 11:45:06 AM2/23/18
to TiddlyWiki
Ciao Giovanni  Parra


Giovanni Parra wrote:
Incredibly enough, there are lots of people using the protocol and working on the client 10 years after, and everything works quite nicely. I guess it's just waiting for more cases that match very well with the idea, like TiddlyWiki, to discover it.

The TEN years has advantages:  (1) Its well debugged; (2) Its proven its utility; (3) There is documentation around & accounts of experience.

I find it a useful addition to ways of running TW.

I think a more DETAILED TUTORIAL on usage could help promote uptake.

Best wishes
Josiah

Giovanni P

unread,
Feb 23, 2018, 1:53:26 PM2/23/18
to tiddl...@googlegroups.com
Hello, Tony.

Before trying to answer you, let me just clarify that I'm not the developer of remoteStorage or responsible for the protocol.

I don't know if you can host it on cPanel because I don't understand cPanel, does it have to be packaged as a "cPanel" app to be hosted there? If not, then I believe it is possible to host it, as there are many remoteStorage server implementations that just store the data as files in the filesystem. It's easy to add support for storing data on databases also, I believe, if it is not done yet.

I've seen Noteself mentioned on the CouchDB users mailing list. It was a great fit. It has inspired me to create the remoteStorage plugin. remoteStorage also saves data locally -- on an IndexedDB in the browser -- before the user connects a remoteStorage server, so it looks very like Pouch/CouchDB.

About multiple users, it is not supported on remoteStorage, as it is meant (I believe) for personal usage of personal webapps -- unless, of course, you do the very old trick of sharing your account password with colleagues. It's also possible to share access tokens to individual global-namespaces (in this case, "/tiddlers"). If there's demand for it, I could implement a way to bypass the widget login with a token-based login on the TiddlyWiki plugin.

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/e-sUhUYBUOk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+unsubscribe@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

Tristan Kohl

unread,
Feb 24, 2018, 12:41:27 PM2/24/18
to TiddlyWiki
Hi Giovanni,

thanks for fixing my two requests over on github ;)

I am quite happy with the plugin right now and did not encounter any problems so far. I will slowly start to migrate my "record keeping" wikis over to remoteStorage as I really still like the idea behind it and I can bring my account to some use finally. I will checkout your microapps over on remotestorage for sure.

Cheers,
Tristan


On Friday, February 23, 2018 at 3:45:17 AM UTC+1, Giovanni Parra wrote:
Yeah, Tristan. I'm also the owner of a very old 5apps account, I always liked remoteStorage, but had never seem any useful apps that supported it. I wish I could say nowadays the situation is different, but still there aren't many useful apps on https://wiki.remotestorage.io/Apps (besides the 3 micro apps I've published recently, which are probably useful to me only).

Incredibly enough, there are lots of people using the protocol and working on the client 10 years after, and everything works quite nicely. I guess it's just waiting for more cases that match very well with the idea, like TiddlyWiki, to discover it.

Please let me know what you think of the plugin and whatever.
On Thu, Feb 22, 2018 at 6:25 PM, Giovanni P <fia...@gmail.com> wrote:
BTC: are you talking about (a) different storage providers/accounts or (b) different "folders" within the same storage provider?

If (b), yes it could be done quite easily. Currently you can alternate between folders by changing $:/plugin/fiatjaf/remoteStorage/namespace (or something like that) in the config tiddler. There could be a custom configuration that used prefixes (or perhaps a custom function?) to determine the folder. I don't know what would be the best UI to implement this, but sure it is possible.

If (a), then yes, but implementing it would be cumbersome since the remoteStorage JS client currently assumes you only have one remoteStorage server. There's an issue open to address this behavior there: https://github.com/remotestorage/remotestorage.js/issues/991, but this could be implemented with a different client, or just using raw HTTP requests to the remoteStorage server.

On Wed, Feb 21, 2018 at 6:42 PM, BurningTreeC <hypnotize...@gmail.com> wrote:
Thank you, Giovanni!

Now it's much more clear to me - and it confirms that it does what I wished it would!

Could it also handle more storages than one? let's say $:/tiddlers/like/this -> storage1, $:/tiddlers/like/that -> storage2 ?
It's just an idea, I think it's already very cool what you've made!

BTC

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/e-sUhUYBUOk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

Jan

unread,
Mar 7, 2018, 7:25:29 PM3/7/18
to tiddl...@googlegroups.com
Ciao Giovanni,
I have not really grasped it all, but you seem to have created a feature i have been desperatly looking for for years.
To get it right: At the moment the plugin would save/sync the entire TW to a server.
Is it possible to make it export individual tiddlers as well?

I am using TW as a teacher and I am longing for possibilities to collect the work of my students. So far I made workarounds using google spreadsheets. But I would really like to export (or better collect) entire tiddlers.
Would this be possible as well.

It would be great to allow students export to a server and then have another plugin to browse through these tiddlers an import those which shall be shared with the other students.

Perhaps just a fantasy but it seems that it never was so close...

Jan
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

Giovanni Parra

unread,
Mar 19, 2018, 8:32:04 AM3/19/18
to TiddlyWiki
Hello, Jan, sorry for the late reply.

At the moment the plugin syncs all the tiddlers to a server, but does so in a one-by-one basis, so they are stored separatedly on the remoteStorage server.

I don't know what do you mean by "export individual tiddlers".
TiddlyWiki itself allows you to drag any tiddler from one TiddlyWiki to another and save it there, this functionality works with this plugin.
For other complex cases (I don't imagine any) it is possible to write separate apps that connect to the same remoteStorage where your tiddlers are saved and operate on some of them individually.
If you tell me more about how would the workflow be for the exporting features you envisage maybe I can build it, if it is easy.

Jan

unread,
Mar 19, 2018, 4:33:22 PM3/19/18
to tiddl...@googlegroups.com
Hi Giovanni,
I am very happy to read your reply.
My usecase is typical I for wikis used educational contexts. TiddlyWiki so far is great for publishing informations but so far it lacks a tool to collect feedback.
I would like to have a button in the Tiddler Toolbar which allows to post Tiddlers created or modified by students.
So far I use google docs for this; this work well for fields, but it gets a drag if you want to collect all the fields of a Tiddler... and creating a Tiddler to reimport and publish out of the spreadsheet consumes a lot of time.

It would be great if remoteStorage could furnish a solution which exports a Tiddlers where the Title is modified to "Modifier_OriginalTitle."

Thanks a lot for what you already achieved, Jan
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.

David Gifford

unread,
Mar 31, 2018, 10:12:23 AM3/31/18
to TiddlyWiki
Hi Giovanni

Did this move? I am getting errors when I try to open the links. I want to add it to the TiddlyWiki tool map

Giovanni P

unread,
Mar 31, 2018, 10:19:10 AM3/31/18
to tiddl...@googlegroups.com
My server is having a hard time.
Sorry, I'll put it back online.

On Sat, Mar 31, 2018 at 11:12 AM, David Gifford <dgif...@crcna.org> wrote:
Hi Giovanni

Did this move? I am getting errors when I try to open the links. I want to add it to the TiddlyWiki tool map

On Wednesday, February 21, 2018 at 2:08:19 PM UTC-6, Giovanni Parra wrote:
I've just created this remoteStorage plugin that autosaves individual tiddlers to a remoteStorage server and would like to get some feedback and perhaps some people using it.

I'm just starting to use TiddlyWiki myself (I wrote the plugin before starting to use it), so please forgive me if I've misunderstood anything about the principles that guide this community.

The basic idea is that your tiddlers will be saved on /public/tiddlers/<folder-name>/, but you can make it non-public (so /tiddlers/<folder-name>/) and change <folder-name> to anything in the config tiddler. By default it is "main".

Along with the plugin, I've made available a server on https://tiddly.alhur.es/ that will serve you with an empty TiddlyWiki with just that plugin installed. After you connect your remoteStorage account you'll get your tiddlers downloaded automatically and on-demand from your remoteStorage and will be able to browse and edit them normally.

If your remoteStorage account is mys...@5apps.com and your tiddlers are saved under /public/tiddlers/something/ you can also point people to https://tiddly.alhur.es/myself@5apps.com/something/ and they'll be browsing your wiki in no time.

See, for example, https://tiddly.alhur.es/fiatjaf...@5apps.com/main/#Hello


For more information (probably nothing that I haven't written here), see the GitHub repository.

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/e-sUhUYBUOk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+unsubscribe@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
Reply all
Reply to author
Forward
0 new messages