Yjs isn't a sync engine, it's a data structure for managing distributed concurrent updates and ensuring they are conflict free.
Whether you use it feels orthogonal to the problem you're describing.
---
For a minimal scope solution, have you considered making a table in your database where you log each update? Then you can keep an id of your most recent update locally and on websocket reconnection ask for the updates after your current change.
Similar to how in-app notifications work.
---
For local-first, you can use things like:
https://tinybase.org/
https://electric-sql.com/
https://livestore.dev/
But they are pretty foundational. You use them as your storage layer in the front end. So worth considering the scope of the change.
Thanks, that helps! Like I said I had only very briefly looked at Yjs.
The thought of an "updates" table has crossed my mind yes, but after some time you want a "materialized view" instead of replaying the history from the start, and that's where it gets complicated ;)
I'll take a look at those alternatives. I'd rather have something stable than having to re-invent the wheel. Thanks again!