I think that’s an unrealistic expectation for a product that exists to connect hundreds of employees across global networks and present dynamic information.
Somewhere in that equation there’s going to be downtime, whether that service is cloud managed or self-hosted. It has minimal value offline because its entire purpose is to exchange information online.
It’d be like saying that World of Warcraft should have an offline mode.
You could make the exact same argument for something like git. Yet everybody would be totally fine if their remote/origin is down for a couple of hours. Offline support is about bridging smaller periods of being unconnected while still enabling the user to be somewhat productive.
No, it was not using CRDTs when I last checked (more than a year ago). If you're designing for online-only, you can cheat a little and be "good enough".
Setting properties is a last write (to the server) wins (set path foo on block XXX to Y). So text changes overwrite the entire block. The contents of a page are a list of block ids. The operation is "insert id XXX after YYY", and if YYY is not found (deleted/moved), it's placed at the end of the list.
But the biggest impediments to offline for Notion (again when I last checked) were that it doesn't have a full copy of the data and some of the operations are executed server-side (autocomplete dropdowns, search, and some bulk operations). I was hoping they would deal with the former, because it'd make it easier to backup and process my data. But I ended up moving on.
I think they've dealt with some of the search operations, but are still not syncing all of the blocks.
I don't think there's truly any technical solution to "two users edited the same piece of text" tbh. You can try to be smart about it in various ways, but at the end of the day you're still going to hit situations where it's really not clear what the users' intent would be to handle two mutually-unaware edits on the same words
I meant in terms of achieving the intended outcome for the end-users. Is it actually desirable to ensure there's a resolution when really they need to decide?
> It’d be like saying that World of Warcraft should have an offline mode.
No, an offline mode in WoW lets everyone cheat. Blizzard started with this, and it’s bad for cheating as well as recurring revenue. You can’t cheat at self-organising.
> its entire purpose is to exchange information online
I don’t think so. Its purpose is to express yourself freely and interlinked. A feature is that you can always share any hypermedia with others, and it does provide a lot of value in an organisation. But Notion would be valuable offline.
Unfortunately, a company like Notion is similarly incentivised to make their software dependent on connectivity, since they are a SaaSS (service as a software substitute); offline-first self-organising apps like Obsidian, Emacs org-mode, or VSCode Foam wouldn’t generate as much money; this is why Obsidian are heroes: they pick an architecture and business model that is in the interest of their users.
This is the motivating behavior behind triplit.dev (disclaimer: I'm a developer on it). Every productivity app should be able to keep chugging along whether the server is online or not. Makes server outages like this WAY cheaper.
21 comments
[ 5.4 ms ] story [ 143 ms ] threadSomewhere in that equation there’s going to be downtime, whether that service is cloud managed or self-hosted. It has minimal value offline because its entire purpose is to exchange information online.
It’d be like saying that World of Warcraft should have an offline mode.
Setting properties is a last write (to the server) wins (set path foo on block XXX to Y). So text changes overwrite the entire block. The contents of a page are a list of block ids. The operation is "insert id XXX after YYY", and if YYY is not found (deleted/moved), it's placed at the end of the list.
But the biggest impediments to offline for Notion (again when I last checked) were that it doesn't have a full copy of the data and some of the operations are executed server-side (autocomplete dropdowns, search, and some bulk operations). I was hoping they would deal with the former, because it'd make it easier to backup and process my data. But I ended up moving on.
I think they've dealt with some of the search operations, but are still not syncing all of the blocks.
No, an offline mode in WoW lets everyone cheat. Blizzard started with this, and it’s bad for cheating as well as recurring revenue. You can’t cheat at self-organising.
> its entire purpose is to exchange information online
I don’t think so. Its purpose is to express yourself freely and interlinked. A feature is that you can always share any hypermedia with others, and it does provide a lot of value in an organisation. But Notion would be valuable offline.
Unfortunately, a company like Notion is similarly incentivised to make their software dependent on connectivity, since they are a SaaSS (service as a software substitute); offline-first self-organising apps like Obsidian, Emacs org-mode, or VSCode Foam wouldn’t generate as much money; this is why Obsidian are heroes: they pick an architecture and business model that is in the interest of their users.
Allows you to load a local folder directly in your browser, and works completely offline. No login or installation required.
It is still a work in progress though so has some bugs / rough edges.
It also supports syncing directly with your GitHub repositories.
[1] https://bangle.io