I just leave this link here. Quip is one of my favorite offline-first cross-platform app. They use leveldb (realm is also based on leveldb) on the client and use mysql on the server. Protocol buffers are used for communication although thats just a communication method.