Limitations of browser js-ipfs behind a NAT

I was hoping to use the browser version of js-ipfs to allow a user - without installing any additional software on their machine - to push a message out to the world-wide IPFS network and then allow another user on a browser to pick it up - assuming they have some kind of reference to it (a CID, a pub-sub topic etc).

After some experimentation and a lot of trawling through the documentation, I’m coming to the conclusion that this is not yet possible.

Circuit-relay is not yet implemented/stable in js-ipfs browser - as of May, 2020

Because circuit-relay does not work - dht does not work

Because dht does not work, pubsub does not work.- you can only talk to nodes on your own side of the NAT

Because dht does not work - name.publish and IPNS does not work

.put does not work - any documents can only be retrieved by nodes of your side of the NAT

So all the ‘push content to the wider network’ (pubsub, dht, ipns and put) is not functioning

Am I missing something? or is there a way to do this that I have not thought of.

Is circuit-relay close to being working on browser js-ipfs?