I'm thinking about the way how to build truly decentralized web applications. Smart contracts looks like the good idea how to run server logic. To be able to push transactions (actions) from web application to smart contract we need to connect to the node by RPC.
And I see two ways how to do it:
Run node daemon locally and connect to http://127.0.0.1:8888/.
Use the distributed web gateway, when somebody ran node daemon and exposed it to the world. Something like Infura in Ethereum. Downside of this approach that if we would like to use it, then we lose decentralization because this gateway is single point of failure.
How to avoid those problems? It is possible to run "lightweight" node in browser to interact with EOS?