As Web3 development will likely take off in 2022, we took a moment to prepare this list of Web3-specific tools for dApp development of tomorrow. With that being said, there are not many libraries, and frameworks, devoted only to this purpose. Conceptually, development of Web2 frontends, and Web3 is not much different despite all the obvious differences. One still needs to develop a front-end. One still needs a back-end, which has the same aim. Database is still a necessity because if you store everything on the main chain, you can easily go bankrupt before Eth2.
With this short intro, we may now begin introducing you to all the specific frameworks and libraries.
The package aims to be a “a simple, compact and complete library for all your Ethereum needs.” It is also technically not a single library, but rather a bundle of libraries. There are four of them: Ethers.provider, Ethers.contract, Ethers.utils, and Ethers.wallets.
Ethers.js Pros
Ethers.js Cons
https://github.com/ethers-io/ethers.js
It was the first package to have appeared on the scene to interact with Ethereum’s chain. As such, it has a clear first mover advantage; since it was available for much longer, developers had more time to prepare educational materials.
Web3.js Pros
Web3.js Cons
GitHub Repository
https://github.com/ChainSafe/web3.js
The complete development environment for developers, getting them from “from idea to d[A]pp as comfortably as possible.” It is the more popular out of the two environments for developers, the other one being Hardhat. Even though stars on GitHub don’t mean much, they are a good indicator of how many resources can one expect to find.
Truffle Pros
Truffle Cons
GitHub Repository
https://github.com/trufflesuite/truffle
Hardhat is the second out of the two main developer environments available for dApp developers.
Hardhat Pros
Hardhat Cons
GitHub Repository
https://github.com/nomiclabs/hardhat
Web3-specific deployment options are not battle-tested — yet. ipfs.js is in alpha, while Bee-js (that connects to Swarm) is in beta. It is a certainty, that they will mature, though it is not clear when will this happen. Because of this, we will not be talking about them. Here, you may use the good old Vercel for deployment that's as easy as typing a command into your terminal. Naturally, AWS, Azure, and Firebase will also be perfect for the job.
If you want to give the Web3-specific options a shot, ifps.js’s GitHub repo is available here, while Bee-js’s source code is available under this link.
As far as UI goes, you may use whichever framework you are the most comfortable with. React, Vue, or Angular, all will work here. Svelte, Inferno, or Solid are viable as well, though the default choice, for now, is React. The library sees a lot of usage, though also has numerous prebuilt options for you, that offloads the cognitive load from you. One example is useDApp.
As we mentioned: the list of Web3-only libraries is shorter than one could have expected. That is preferable, as it does not take much to jump on the dApp hype train. The only hurdle, if it even is one, is learning Solidity (or Vyper). Though, as the majority of the readers of this post will be JavaScript developers, we recommend learning Solidity.
If you want to have a chat with our experts about developing your next Web3 application, feel free to contact our Chief Innovation Officer, Marcin Dąbrowski.