[tw5] TW 5.2.0 + CouchDB ?

Hi.

I have been following the TW project for years and I am still very surprised that the community continues to actively support super strange, inconvenient and limited ways of saving and synchronizing – but at the same time all developments using normal technologies on which synchronization could be easy, seamless and safe, such as CouchDB, are not supported in official release and abandoned by community.

Especially considering the new data storage format in JSON, with which synchronization with object databases has never been easier. It’s even easier than maintaining the current server solution on files, which in principle cannot work offline, unlike a solution based on IndexedDB+PouchDB→CouchDB or IndexedDB→Mongo/Posrgres.

I have used PouchDB adapter from NoteSelf, but it’s outdated and contains a lot of bugs. Other solutions were outdated even earlier.

If IndexedDB/CouchDB solution were supported out of the box, there would be no reason at all to use paid solutions like Evernote or Notion for personal notes.

Based on discussions & repo, it seems that no movement in this direction is planned.

I have only one question – why?
Is it really more convenient for everyone to save files in Dropbox using crutches, constantly losing changes between devices and merging conflicts?

Are these some kind of ideological reasons?

I can’t speak for everyone, only myself. When I picked TiddlyWiki several years ago, I imposed the following constraints on myself (brief reason in square brackets):

  • Lightweight text markup that included hyperlinking [these are among the things that separate the solution from text-only]

  • Searchable

  • Open source [the content I generate for myself is too important to me for it to go dark if a startup shutters]

  • Offline-first [travel or an internet outage shouldn’t completely separate me from my “second brain”]

The first two are basic notetaking sorts of things, but the other two are why I use the default file saver with TiddlyDesktop. A single file + synchronization happens to be among the easier ways (to me) of accomplishing offline first. Everything is a trade-off.

I will say that document databases are a dime a dozen. Plain text and HTML are probably the two most stable interfaces in technology today. I (and, I suspect, a great deal of TiddlyWiki’s user base) value that sort of stability.

1 Like

Hi V,
this is a very important topic…

I also would like to have the browser storage plugin play a more important role, because for some first-time users it is a deception that their changes are not saved when they return - browser Storage could heal this.

One setback for noteself was that the service proposed there - cloudant - was bought by …IBM? and it became more complicated to obtain it.

Another problem is that browser storage is great for personal notetaking but not if your wiki is meant for others (like students and so on…).

If you are working on various machines and basically saving to a server, it can have unwanted side effects like Zombi-Tiddlers reappearing after they have been deleted and then saved are back by accident.
So I never really used browser storage, and so I cannot say whether the idea is weird:

I would like to have a sort of browser storage-on-demand, where you are either asked whether you want to recover from the browser storage in the beginning if there is saved content that is not in the server-version.

Best wishes Jan

P.S. It would be great to continue this discussion on https://talk.tiddlywiki.org/ It took me some time to find out why I could not reply in the there.

That would be very cool.

Comments

Other than technical coolness, what would be the advantage of it? From just a user perspective (i.e. forget technical stuff) what reason would I have to want that?

You’re talking technological “wowness”, but bring it back to “in the trenches” “daily usage” terms for a typical user: why should he/she care?

To investigate how people use TiddlyWiki, what choices they make, and why, you will get more responses over at TiddlyTalk. It has become the fan-favourite.

Me, I much prefer Google Groups, so I am very happy to reply here:

My use cases

Personal TiddlyWiki

I store all of my personal TiddlyWiki instances on Google Drive. TiddlyWiki aside, if I have no access to the internet, any computer is useless to me.

However, since I have offline access to my files on Google Drive, my Chromebook isn’t quite the brick folk would think it is …

Most important to me is to have access to all of my things in Google Drive from any connected device anywhere.

Having my TiddlyWiki instances tied to databases of a web browser on some machine? Nope, not for me. Unless whatever you come up with has auto-syn with the cloud, I won’t be using it.

A big draw to single-file TiddlyWiki: 10 years from now, however long a TiddlyWiki has gathered dust, I can open it and everything will be right thre.

Multi-User TiddlyWik

In this case, TiddlyWiki instances I’ve setup in virtual machines using cloud services.

So that I can take advantage of all the goodness that is nodejs TiddlyWiki. All of them tiddlers sitting in individual text files, right where I want them.

Although what you describe would be, I think, of no interest to me here, the ability to have these TiddlyWiki instances able to access databases on these servers, so that the TiddlyWiki instances could have access to data coming from other systems? That would get my attention.

1 Like

@Jan
I was quite keen on noteself, had it set up and everything but then after the takeover, Couch DB moved past my tolerance for banging my head against software and it killed it for me. I suspect that was true for others.

That was it for me too. In the space of a month, it went from this friendly, reasonably understandable thing, to this borg-like mega-corporation thing. HAL* doesn’t really cater to “little people” – that’s not their mission statement.

  • Advance each letter one step

CouchDB was already established when I started TiddlyWiki 5 in 2011, and I’d been following it with interest. Not only did it have solid synchronisation functionality, at the time it had intriguing features for hosting JavaScript applications, long before Node.js.

I think there were a few reasons that I didn’t personally take CouchDB further in TiddlyWiki 5:

  • TiddlyWiki’s internal store needs to offer a synchronous API, but CouchDB offers only async APIs. That means there would always be a requirement for a sync process between TWs synchronous DB and the CouchDB API, which means that TW still has to handle synchronisation
  • The difficulties of setting up and running a server of my own
  • The lack of CouchDB online services

I was delighted to see Danielo’s work with NoteSelf, and it deservedly attracted a lot of interest. It demonstrated that CouchDB can be retrofitted onto TW5 just like any other database with an async API.

Best wishes

Jeremy