Quick thread on @RoamResearch and *why* their software approach is not a very good one.
All content is stored directly in the browser. Your entire database, with no exceptions, is downloaded onto your device every time you want to edit a page or search through your content. All of the functionality that uses that data is done *locally*.
Things like searching your database for unlinked tags, searching titles, links to other parts of your database... none of those make external calls to make the functionality work. This means as your database gets larger, the app slows down more and more.
Traditionally, tools have offset this by performing more of the work on their servers and sending the *result* to you. This means you still get the same fluid experience regardless of the size of your database.
But because @RoamResearch stores all of your content locally, this means that your experience with the app is bounded by *how much memory you have on your device*. If you don't have enough memory free to store your entire database, the browser tab will crash.
This means that users on slower devices, particularly those in developing countries, *won't be able to use Roam*. People in developing countries often have *much* slower devices, which means that the performance ceiling for them will be *drastically* lower.
Roam also runs inside the browser, which is not the fastest computing environment in the world. Tabs in a browser are sandboxed, meaning that they can't access content outside of their own little safe space.
This means that it's safe to run code in them, but there's also a cost overhead: every piece of code that runs in a tab has to be sandboxed as well, running in an interpreted environment that checks at *every* execution to make sure they're not doing something invalid.
Roam does not, and will never have, bare metal performance. This means that it runs slower than native apps, hell, even optimized Electron apps with a Rust backend, and will *never* be able to be faster without massive amounts of work being done.
Try looking through the help database sometime. It's a really laggy mess. My browser on my *really good computer* freezes up because 1) the search isn't implemented properly (asynchronously), and 2) it's not being done on a remote server https://roamresearch.com/#/app/help 
Oh also they're using Firebase for a backend, have consistent outages and data losses, and don't seem to be making attempts to move *off* of that infrastructure. That's frustrating.
Anyway, I feel really bad for them because these choices they've made are *very* hard to recover from; they're going to require extensive rewrites because *massive* parts of the app are built to run in a browser.
If they don't rewrite, they'll never achieve optimal performance. Roam will forever be relegated to databases of a medium size, and Notion will swallow them whole.

Anyway, that's the thread!
You can follow @samwightt.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: