DApp (Decentralized applications) is a computer application that runs on distributed computing system.

Normally there're two parts In real word DApp: the on-chain code and the off-chain code. Developers put core application logic in the on-chain code and deploy it to the blockchain. The off-chain code provides a better user interface to make it easy to interact with the on-chain application.

Many modern blockchain systems support DApp development by implementing an on-chain virtual machine to run the DApp code and a corresponding programming language to write the on-chain code which are called as Smart Contract.

Ethereum virtual machine(aka EVM) is the most popular and widely used virtual machine. Web3js is the most commonly used js SDK to interact with the smart contract application. Clover implements a fully compatible EVM layer, developers can use web3 to interact with Clover DApp.

This tutorial will guide you to create your first DApp step by step. It will cover the essential of creating a DApp from scratch.