The cache for events was one of the first features we implemented in Plebstr, but we aren't entirely local-first. However, we acknowledge the areas you've mentioned need substantial improvements.
We're learning as we build, and there's nothing wrong with that, in my opinion.
Thanks for sharing 💜