The conflict resolution part is where I've seen offline-first get underestimated, especially once two devices edit the same record. For a v1 I've found it's often enough to make reads work offline and queue writes with a clear sync status, then add CRDTs only for the screens that truly need collaborative edits. Did you hit any issues with SQLite migrations once real user data was on device?