We can imagine web3 as a car and web3 libraries/DApps are the car’s chassis, smart contracts/blockchain are the internal hardware components, wallets act as the driver’s license, and the node is the fuel that is needed to run the car.

Most “backends” to your web3/blockchain applications are going to be built with a framework like Hardhat, Brownie, or Foundry. Our frontends are going to use anything and everything we’ve used in the web2 space. HTML, JavaScript, CSS, and frameworks like NextJS, React, and, TypeScript.

Whenever we want to read data from a blockchain, call a function, or make a transaction, we need to connect to the blockchain network. If we send a transaction, we need to send the signed transaction to one blockchain node so that it can send it out to all the other blockchain nodes in the network. You might have used an RPC URL from Alchemy, Infura, or Moralis Speedy Nodes in your blockchain applications before. These are all “node-as-a-service” providers, and give us an HTTP endpoint to send requests to a blockchain node. The same happens with cryptocurrency wallets, our Metamasks have a connection to a blockchain node built-in. In fact, if you go to your Metamask “networks” tab, you can see the exact RPC URL your Metamask is using!

We are working with NextJS for all of these because ReactJS is the most popular frontend framework on the planet right now, and NextJS is built on top of it, and more user-friendly.

Last updated