I want to know your opinions about what do you think the best architecture for building a decentralized application? Taking into consideration the global adoption, and how to avoid telling the users to create wallets and use metamask...
closed as primarily opinion-based by Shawn Tabrizi, Achala Dissanayake, smarx, Richard Horrocks, Aquila Oct 27 '18 at 13:46
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
I had a similar "problem" and the architecture I decide to use is a 3 tier one: client, private blockchain based on ethereum and a backend system for off-chain data.
The client (in my case is a mobile app developed with react native, but can be a web app talking directly to the blockchain without using metamask) register the user, creates a private key that is stored on the device and then "talks" to the blockchain and to the off-chain backend directly. This means that all blockchain transactions are signed with the private key by the mobile app and user doesn't have to deal directly with metamask or other wallets. Of course you have to inform the user that ha has to backup the private key or would loose access to his transactions and money/tokens.
The back end system (in my case a node.js with mongodb application that expose its REST APIs) doesn't store the private key of the users, and if it's hacked it doesn't give access to users money/tokens.
I'm not saying that this is the best solution, but in my case was the best choice to guarantee access to users funds and give them a better user experience than the one provided by Metamask.