A decentralized application (dapp) is a smart contract and a web user interface, i.e., a web application that is built on top of open, decentralized, peer-to-peer (p2p) infrastructure services.
Many dapps include decentralized components, such as a p2p storage protocol or platform and a p2p messaging protocol or platform.