I'm working on a book about writing local-first software. Instead of doing a survey of all the libraries available, I'm taking a first principles approach. That means doing a lot of explaining CRDTs, syncing, and the like, but I'm having a ton of fun with it so far.