I use React Query[0] for frontend data management regardless and my apps work great as PWAs.
0. https://tanstack.com/query/latest/docs/framework/react/quick...
0. https://tanstack.com/query/latest/docs/framework/react/quick...
Having a complete query engine on the client makes this a lot easier to deal with. It's why most popular messaging apps will use SQLite on the client to render the UI and build their own sync engine to keep it up to date with the backend.