The decentralized web, the trustless web or the web built off the communities. The term “web3” has garnered increased attention, specially from the developer community over the past year(the related queries hint towards this interest group).Which also signifies the gradual shift we are starting to witness from investing in crypto to buidling in the crypto/web3 ecosystem.
While most of the people who have had good amount of exposure to web3 development are aware of the terms such as dApp, solidity,ENS, the web3 frontend languages like Reactjs, very less is spoken about the infrastructure that holds together these dApps on the other hand. Be it the tools used to develop the dApps or the storage mechanism of the NFTs.
Before further exploring the Web3 tech stack, here’s a brief overview on web3.
While there are multiple definitions of web3 , this tweet sums up the purpose of web3 and evolution of the web.
This following article from fabric ventures provides a detailed read on the evolution of web from 1.0 to 3.0.
Any given web application consists of a client, server and a database.
Whilst the present focus is on the blackbox view, the services or tools that help in building this application and keep the app running are spoken about a lot less. Be it the APIs to query data from the database or to display different views on a web app, the data storage mechanisms or resolving unique identifier of the object in the network - IP(web2)/wallet address(web3) with a name server.
dApps or Decentralized Apps is the term used to describe the apps that are built on top of web3.
It is quite evident from the term that the key focus of web3 is to build apps that are decentralized, where the data is immutable and the users control their data, privacy and identity.
For people new to the web3 ecosystem, there’s a common misconception that solidity is the only programming language to build on web3, whereas it’s the language in which the smart contracts are written.
Similar to how smart contracts are integral part of a dApp , the other aspects such as handling user input to the dApp or querying the database (IPFS , arweave) to display an NFT also play an equally important role in making the app fully functional.
A common misconception is that developers must write smart contracts in order to build on Ethereum. This is false. One of the beauties of the Ethereum network and community is that you’re able to participate in just about any programming language.
- Ethereum Developer community
Infact, the ethereum network supports multiple languages through JSON - RPC interface.
Apart from support for multiple languages, the web3 community also makes it easier to build dApps with the help of open source forums such as gitcoin or online IDEs like Remix.
The infrastructure in web3 ecosystem is a sleeping giant.
The below article provides a complete overview about the various stages of building a dApp and the tools and technologies used for the same.
Similar to how each device connected to the internet has a unique address(IP), every user, wallet, IPFS object connected to the web3 has a unique identifier - Ethereum address. And just as every IP can be mapped to a domain in web2 using DNS, every ethereum address can be mapped to .eth using ENS (Ethereum Name Server) in web3. Checkout resolving ENS names on how ENS maps to addresses other than ethereum.
While the dApps will help in growing the web3 ecosystem by onboarding larger audience, the tech stack behind it will help in creating more dApps and onboarding greater number of dApp buidlers!