I’m confused. When I think about decentralized applications, I imagine an application that does not only have a decentralized backend (blockchain) but also a decentralized front end (html, js, css, etc.) hosted on a P2P network rather a centralized web server. I have been looking at options like SWARM or IPFS but it seems as though these are not exactly ready for always available production dApps (guaranteeing your web files are always accessible to users). So that made me wonder what the most used dApp till now has under the hood: https://builtwith.com/?https%3A%2F%2Fwww.cryptokitties.co%2F and it turned out they are using Google Cloud services.
So my questions to you are:
Would you consider an application that does not have a decentralized front end but still uses the blockchain backend an actual dApp?
If you believe that both sides of the house shouldn’t be centralized, how would you protect your code from being stolen? Does it matter since dApps should be open sourced projects anyways?
If all your code is open sourced, what is stopping others from stealing your dApp and just remaking it with a different title and preventing you from profiting? First mover advantage?