Local storage with its string based keyvalue pairs can get you this far. In the video I explain why IndexedDB might be a better alternative for storing your data right in the browser and how I use it for my React application to provide best experience for anonymous users.
In the video I mention Jake Archibald twice, who might not need an introduction, but if you haven't head about him yet, check out his blog: https://jakearchibald.com/