You should try RxDB. It is based on pouchdb and therefore supports offline first [1]. Also you can use the graphql replication so that you are not limited to couchdb backend. Also there is a course made by hasura about using RxDB with their backend [2]
disclaimer: I made RxDB
[1] https://github.com/pubkey/rxdb
[2] https://hasura.io/learn/graphql/react-rxdb-offline-first/int...