> The current major difference between markdown-based and db-based apps is block references. Over time, the difference will become significant as knowledge bases grow in size.
That should be true, but so far it is Roam with the biggest problems with performance, from 30+ seconds of loading each time you load/refresh tab to constant lags in normal usage for some users :)
I personally like the most this mixed approach of Logseq - app internally uses DataScript, but data is ultimately stored in plain files.
It's not either or as you mentioned! Plan to have user data stored in plain files as well.
Roam's performance suffers mainly on first-load because they are server-first, and they load the entire db into memory at the beginning (such that it's quite fast thereafter).
Once we have true local-first data structures with something like https://github.com/replikativ/datahike, we could still have fast in-memory, but also fast initial load.
> Plan to have user data stored in plain files as well.
That would be cool :)
> such that it's quite fast thereafter
Not always :) I saw that myself and I also see complaints on Roam Slack. In my experience it mostly depends on how many queries you have on given page, but sometimes it lags (long waiting time when switching between pages or opening note in sidebar) also with simple, "atomic" notes. But they overall struggle with polishing existing parts before adding new features, so maybe performance is still on its early days in Roam.
Ah, very good to know. Don't use Roam too much these days ;) Sometimes it's hard to know if their performance issues stem from networking (they use Firebase) or just client stuff (i.e. datascript and Reagent, Clojurescript's React wrapper).
That should be true, but so far it is Roam with the biggest problems with performance, from 30+ seconds of loading each time you load/refresh tab to constant lags in normal usage for some users :)
I personally like the most this mixed approach of Logseq - app internally uses DataScript, but data is ultimately stored in plain files.