Decentralized Applications (or DApps) are applications that do not rely on a centralized backend running in a server that power traditional web and mobile applications (outside of hosting the frontend code itself). Instead, the frontend application interacts directly with blockchain over an API.
A typical DApp should contain:
- Data indexing service (such as graph from The Graph)
- Frontend interface (web or mobile app) for user to interact with DApp.