Anatomy of dApps
Where technology, ideology, and marketing collide

There’s a ton of really well written in-depth takes on how a dApp should function, so today’s article goal is to provide new readers with some clarifications on how to approach the question of what is a dApp in general.
Any app requires several components to do its thing:
- a place to do the heavy lifting (some sophisticated computations or process high loads of data) and orchestrate it’s behaviour — the backend (facing the developer), usually, it’s also a place to host applications’ code;
- an interface through which users could interact with the app — the front-end (facing the user);
- a place to store all of its data that is not currently in use — the data storage
Everything is OK to this point. The problem is that there is no consensus (pun intended) on what to call a dApp, since there are several ways to think about it:
- Technological purists state that only the one which has all of its components decentralized is a true dApp. Everything else is just “an app” that’s using blockchain data (no problem with that).
- From the ideological point of view, a true dApp should not compromise on the values: transparency, trustlessness, and lack of central authority. So it’s not a dApp unless it’s governed by DAO.
- Finally, marketing folks figured out that if you’re targeting web3 users as a core audience, it’s better to write dApp on the website, regardless of how it functions under the hood.
So when you start digging into the world of dApps don’t get confused, it would very quickly become apparent, where does a particular author stand. Sometimes you’d encounter opinions such as “The dApp could only use a blockchain as data storage” (though these views are less and less popular right now), and some folks would say that only a set of smart contracts is a dApp.
Just be aware that there is no right answer and a much better question would be “does it create value for the user in a secure and convenient way?”. In the end, web3’s core idea was empowering people.
Let’s set the definitions aside then and take an ecosystem view. In just a few years we got to an interesting point:
- several ways to store data in a decentralized way (IPFS, Storj, Arweave, Filecoin) are available,
- a bunch of tools that simplify access and processing of blockchain data (Infura, of course),
- user interfaces are still a mess, yet there are great examples (including several wallet apps) that provide awesome user experience and make web3 user-friendly (Metamask has done a great job, MEW iOS mobile app looks beautiful, Kraken exchange is my favourite).
Noticed something is missing? Computations is the most sensitive part of the whole dApp narrative. You could build a fence web-interface and upload it to IPFS, store application data (and even host its code) using Storj (with regular backups to Arweave), quickly access blockchain data with Infura API without having to host your own node, yet, if you’d need some sophisticated computations, you’d still have to use some cloud provider like AWS.
This is the fundamental part in both technology and web3 values — until there’s no decentralized computing provider that could execute arbitrary code in a trustless and secure manner, true decentralization is impossible to achieve.
Super Protocol is on its way to enable such computing for the web3 (and any other app, for that matter) — check out our whitepaper!
Author: Artemy Domozhakov-Liarskii