https://dexie.org/ Good Lord they're bragging about being "only" 25k minimized. Web developers MUST BE STOPPED.
I’ve used idb to good effect. Simplifies the event logic. https://www.npmjs.com/package/idb Haven’t tried PouchDB yet, but I think that’s likely the way I’d go on a fresh project. Since Nostr events are immutable, pairing PouchDB with one or more CouchDB replicas may be straightforward.