@Dominic https://github.com/maxogden/level.js/issues/46 (if you've only tried that route). Plus maybe moving from snappy + json to deflate/LZMA + CBOR? As IO would be slower than CPU.
@neftaly hmm, interesting, the approach that I've been trying is to just write whole blocks to the store - that is to provide the aligned-block-file interface. This makes writing quite large amounts quite fast - less ops (from indexeddb's perspective) but more data in each one. It does put us in the absurd position of building a low level filesystem on top of indexeddb then building a database on top of that.