---
# System prepended metadata

title: Developing a Decentralized Application on the Web

---

# Developing a Decentralized Application on the Web
- [Preface](https://www.devteam.space/blog/how-to-build-a-decentralized-application-dapps/)
    ------
    - Ethereum is a great blockchain to develop low scale decentalized apps.
    - There are various IDEs and tech stacks you can use instead of what is shown below.
    - Before you begin developing your web dApp, you need to have a solid under standing of smart contracts and the solidity programming language
    - Once you finishing developing and testing your contract, you can publish your smart on the blockchain.
        - With the introduction of blockchain technologies, the internet recently expanded from Web2 to Web3 status.
        - This can be known as the token economy in which decentralized apps can be created and grown using decentralized platforms and currencies(tokens and nfts).

- Web3 dApp Tech Stack
    -----
    ![](https://i.imgur.com/uSe94lt.jpg)

- Developing a UI using Web3
    ------
    -   Assuming you have developed your idea into a smart contract, you can begin to creating the web interface for your users.
    -   Moralis is a company that provides Web3 API's and SDKs for you to integrate your smart contract into your website using Web3
    -   Using Moralis Web3 UI Kit you integrate features easily such as:
        -   Authentication
        -   General UI Elements
            -   Buttons
            -   Tables
        - Avatars
    - Here is a [Introduction to Web3 UI](https://moralis.io/web3-ui-how-to-create-a-great-dapp-ui/) by Moralis which explains indepth what UI is and how Web3 has revolutionized it.
    - Reading through Documentation by companies such as Moralis will help speed up your development process.
        - This is because there are many libraries and smart contracts which are meant to be used as templates for your own ideas.
        - [OpenZepplin](https://docs.openzeppelin.com/contracts/4.x/) is another great library for smart contracts such as making a NFTs

    - Almost every 10 years the internet has entered a new phase
    - So far we have transitioned from Web 1 -> Web 2 and now Web 3
    - In order to understand the importance of Web 3 we have to identify the main addition each stage has offered.

- ![](https://i.imgur.com/3FvUsuf.png)

### Stage 1: Web 1.0
- When the internet first appeared, it was **static** and only conveyed information to users
- This was useful for connecting people worldwide to spread information
- This can simple could only **read** info

### Stage 2: Web 2.0
- Soon enough people wanted to interact and discuss this new web of information on the internet so Web 2.0 was created
- This method of internet connectivity can be described as **dynamic**, as opposed to static Web 1.0
- This gave rise to social media in which users could **read** (view) posts as well as **write** their own post
- However those media platforms have access to mass amounts personal data for each user and their **reading** and **writing**

### Stage 3: Web 3.0
- Personal information is being sold everyday and is particularly useful for businesses and governments
- Web 3 aims to solve these privacy concern by utilizing a decentralized internet
	- AKA a peer to peer internet
- **Decentralized Data**
	- Peers data are not owned by centralized organizations
	- Instead the data is shared publicly between peers
- These new Decentralized app's have the potential to replace traditional applications as we know them today

### dApps - decentralized Applications
- dApps are the backbone of why Web 3 is so important
	- Can be also referred to as:
		- Web 3 Apps
		- Web 3 Applications
		- decentralized apps
		- dApp's
		- Web 3 dApp's
- The goal of dApp's is for the internet to become a more decentralized system
- How are dApp's made:
	- Simple, with **Smart Contracts**
	- These contracts are code programs that are uploaded and running on the blockchain
	- These contracts automatically verify and perform transactions between different peers
		- Peers are the same as users
	- Since these apps are using the contracts logic, the contract dictates the app's behavior

### Additional Reading
- If you want to interact with your Web3 app to create a website, you will be utilizing **Javascript**
	- Specifically **Web3.js**, which is a Blockchain API for developing web3 apps that connect to a website with a UI
- You can then create applications that can interact with different blockchains
- **Web3.js** is essential for connecting the gap between javascript and Web3 to develop a dApp
- Javascript is natively supported in all browsers so people who access you dApp website can interact with your app using a better UI rather than the **block explorer** 
	- The block explorer is used by every chain to record accounts and transactions
	- You can test your contracts read and write functions without developing a website, however the UI will be poor

### Achieving Full Decentralization
- Connecting you dApp with real word data means you have to access centralized data sources
- **IPFS** is distributed system for storing and accessing files
	- Doesn't access internet through single server or URLS
	- Accesses content from peers in the **IPFS network** around the world
- This is more resilient and allows freedom of accessing content without worrying about security of a single data source
- Essentially we are accessing **data in a decentralized manner**
- **Participation**
    - *"Today's World Wide Web is structured on ownership and access, meaning that you get files from whoever owns them — if they choose to grant you access. IPFS is based on the ideas of possession and participation, where many people possess each others' files and participate in making them available."*














