One interesting side-effect of this work is that now this module can have pluggable storages: initially I was trying to use sqlite in the browser (via wasm), that didn't work so well so I moved to #pouchdb. But there is nothing stopping someone to take the storage part and making it work on the server again.
This means that now I'm ending up with what might be another typescript framework for ActivityPub applications on the server.