

4·
17 hours agoIt is just LWW per column. On each client I track last change of each field with current time(actually sysytemTime-counter-clientId to make time uniq). Then, when changes arrive to server, I compare previous clock time with new clock time from client. If client win, it overwrite server column time + value. No tracking causality for now, just current system time of the client.

You still need to sign up to sync between devices. With the self-hosted version, you also create an account, but authentication and all synced data stay on your own server.
Offline-first means the app works without an internet connection; it doesn’t necessarily mean that no account is required. After sign up/sign in, you can use it offline without any problems.