We'd love to build an offline/online solution. It's a bit complex when you start dealing with conflict resolution but we are already looking at a few possible OSS libraries to deal with this.
At the moment the leading contender is RxDB (https://github.com/pubkey/rxdb), but it will require a bit of re-engineering on our end, so we will continue to focus on the backend features first.
Sounds great, please reach out to me on this from my profile if you’d like to discuss further. I’ve been using CouchDB/PouchDB for a product, and have worked with RxDB and Realm as well. RxDB has schemas which may mesh better with your backend architecture. I think schema-based is the right way to go personally.
Would be great if the TS definitions could be generated automatically from the backend with automatic migrations of local data so it doesn’t have to be replicated again.
Do you have the concept of ephemeral data (data that is not needed for persistence) or is everything persisted? One example of ephemeral data would be the users online in a given channel, or the position and range of a shared cursor in a document collaboration.
> Would be great if the TS definitions could be generated automatically
We're working on this! Watch this space
> Do you have the concept of ephemeral data
Everything is persisted right now, so the realtime functionality probably wont' be great for tracking things like mouse positions. Not sure if we will ever support ephemeral data, but we really just go where our users ask us. If there's enough demand, we'll build
At the moment the leading contender is RxDB (https://github.com/pubkey/rxdb), but it will require a bit of re-engineering on our end, so we will continue to focus on the backend features first.