Or an extension, thereof.
So it isn't a "server" that is running that a webapp talks to, instead, it is that the webapp talks to your "localhost" or similar (browser extensions are easier).
Then the apps are decentralized from the start.
We're already doing something similar (alpha) with http://party.lol and in the http://gun.eco (our decentralized Open Source Firebase alternative) community.