I've done the same with mobx-state-tree, and realized I was essentially building a relational database with cache-ing in JavaScript.
The only thing SQLite is missed, which is important when integrating with React, is incremental view maintenance: how do we maintain as much immutable state on an update as possible to avoid wasteful re-renders?