By Jonathan King, Connor Dempsey, & Hoolie Tejwani
Despite the rise of Bitcoin and Ethereum, and the emergence of new categories such as DeFi, NFTs, GameFi, and DAOs, web3 developers make up less than 1% of the world’s 31.1 million software developers.
So why are there so few web3 developers today? On the one hand, the tools and infrastructure available to web3 developers are far less powerful than web2. This just makes it harder to start building, experimenting, and deploying in web3. However, this is all changing rapidly, as the number of monthly active web3 developers hit an all-time high in late 2021. To support this growing contingencies, a vibrant ecosystem of teams dedicated to simplifying the entire web3 developer journey will ultimately help unlock the next phase of web3 growth and innovation.
In this installment of Around The Block, we’ll explore the growing web3 developer stack.
Web3 developer stack
Building in Web2 and Web3
Software development is the process of building computer programs. The given program contains three main components:
- Frontend (what the user interacts with)
- Backend (where the user can’t see it)
- Database (where critical data is stored)
The front end that a typical user interacts with through a mobile or desktop browser is basically the same in web2 and web3. A web3 application like Uniswap looks similar to a typical web2 application, as both front ends are mostly created using React – a popular framework for web and mobile application developers.
This is where web2 and web3 differ. The backend frameworks and database types that enable the defining feature of web3 (user-defined ownership ) are new and unique.
While web2 applications rely heavily on centralized databases, web3 applications are built on top of a decentralized database (blockchain). This requires new primitives like brand new backends and wallets.
Tools to help create, deploy, and maintain web2 applications are very developer-friendly due to decades of cumulative development. Out-of-the-box solutions, mature infrastructure, shared codebases, and easy-to-use frameworks largely make building in web2 a breeze.
Web3, on the other hand, still requires expertise to interact with complex infrastructure and often involves many redundant processes because the stack is less developed, forcing teams to reinvent the wheel. That said, the tools that will help the next 1M+ web3 developers join are improving rapidly.
Let’s take a layer-by-layer (non-exhaustive) look at the evolving Web3 developer stack (* denotes a Coinbase Ventures portfolio company).
The first decision a web3 developer has to make is which blockchain protocol to base on. Bitcoin-based builds are completely different from Ethereum-based builds, and Solana-based is different from Ethereum-based.
For faster, lower cost applications, developers may want to build on layer 2 protocols like Optimism*, Arbitrum*, etc. For applications that need to transfer value from one chain to another, developers will want to take advantage of cross-chain bridges such as Hop* or Synapse*.
Once these decisions are made, developers can start integrating the building blocks that make user applications possible.
The next thing developers need to figure out is how their applications will ultimately interact with the underlying blockchain . This is where infrastructure primitives come into play.
Node Infrastructure - Nodes are where applications “happen” to interact with the blockchain. Once users interact with the application, they are the computers that read the blockchain state and write updates to it. Node infrastructure providers such as Coinbase Cloud, Infura* and Alchemy* allow developers to easily set up, manage or access blockchain nodes, saving developers a lot of time and resources.
Wallet and Key Management - Blockchain wallets, such as Coinbase Wallet, allow users to manage the private keys needed to perform transactions in web3 applications. Wallet and key management providers such as Web3Auth* or Pine Street Labs* enable developers to establish secure connections between blockchain wallets and user-facing applications.
Identity - Protocols like ENS* act as the user’s identity within the application. Spruce* provides frameworks and toolkits that developers can use to validate user credentials to authenticate operations on Ethereum. For example, developers can use the Spruce ID toolkit to authorize users to log into dApps using their ENS accounts. Additionally, companies like Lit Protocol offer developer tools for authorizing access to content, software, and other data using their tokens or NFTs.
Decentralized Computing - Computing resources provide the processing power that applications rely on to perform computing tasks. Currently, most network computing is provided by centralized providers such as AWS. Decentralized computing is the shift to community-owned networks, where computing resources are distributed in a low-cost, permissionless manner. Projects such as Akash Network and Aleph.im have emerged, providing high-performance peer-to-peer computing resources optimized for smart contracts and blockchain applications.
Decentralized Storage - Storing every piece of data related to a given web3 application directly on a blockchain node is expensive. Instead of storing data on a centralized database, web3 developers can use peer-to-peer data storage protocols like IPFS, Arweave*, and Ceramic Network* for some data. For example, the web3 blogging site Mirror is built on Ethereum but stores the actual blog content on Arweave.
Oracles - For typical Ethereum applications, the blockchain stores transaction history and “state” (balances, smart contracts, and other variables). However, it cannot natively store and interact with data from external sources — i.e. transaction history or “real world” data from other blockchains, such as the weather in San Francisco. This is where oracles like Chainlink or Flux* come in, connecting blockchains to on-chain and off-chain data sources.
Interoperability - Many different blockchains exist, but few are capable of exchanging value and leveraging cross-chain information. Interoperability protocols such as LayerZero* and Astar Network* provide developers with SDKs and APIs to build dApps that are portable and can communicate with different blockchains.
On top of the infrastructure primitives that allow applications to interact with the blockchain network are the tools that allow developers to interact with the aforementioned primitives.
Frameworks and IDEs — Developer frameworks consist of codebases created by other developers to make development easier. Web3 frameworks like Truffle, Moralis*, Tatum, and ThirdWeb* allow developers to leverage existing code for smart contract applications so they don’t have to build everything from scratch. They also allow developers to test and deploy applications. Integrated development environments (IDEs) such as Foundry and HardHat combine common source code editors and build automation and debugging tools into a single, easily accessible interface.
Low-Code/No-Code - These platforms enable user-facing applications to be rapidly designed/deployed entirely through a drag-and-drop interface. Companies like Settlemint provide developers with smart contract templates for NFTs to prevent web3 developers from having to reinvent the wheel.
Indexing and Querying - Data indexers help people locate and access specific data in the underlying database. In Web2, Google Search is the most popular data indexing service, allowing users to query data stored in online databases with sub-second response times. In Web3, decentralized indexing services are emerging to help dApp developers acquire, process, and query blockchain data. Graph Protocol*, Covalent*, and Coherent* all provide APIs for extracting and consuming data from decentralized data storage providers and EVM-compatible blockchains.
Testing, mocking and monitoring - It is important to test and mock web3 applications before they are released. Companies like Tenderly* and Kurtosis* provide various tools to simulate smart contracts and transactions, as well as tools to debug any issues. Blocknative* provides dashboards and tools for monitoring transactions before they are committed on-chain.
Security and Auditing - Given the potential for smart contract utilization, these platforms allow developers to apply security and auditing best practices to their applications. OpenZeppelin*, Certik*, and Certora* all provide developers with a variety of services, frameworks, and monitoring tools to mitigate potential security risks and vulnerabilities.
Messaging – Web3 applications often involve sending various communications to end users. For example, a crypto wallet might want to push alerts to users about transaction confirmations. Companies like XMTP Labs* and EPNS are building secure messaging protocols and decentralized communication networks to drive user engagement and power these notifications in Web3 applications.
Analytics - There are many platforms and services that allow developers to explore, analyze, extract and visualize blockchain data. Dune*, Nansen*, and Messari* all provide various APIs and reporting capabilities to build data visualization capabilities in web3 applications. Flipside Crypto* provides SDKs (Software Development Kits) and APIs to create and share data insights about various crypto projects.
Application Support Layer
The application support layer ties all of the above layers to a specific web3 purpose. NFTs, DAOs, DeFi, and games all have their own customized developer solutions.
NFT-focused tools provide the infrastructure for creating and managing NFT assets. DAO tools provide solutions for DAO creation (Syndicate*, Samudai*), governance (Snapshot*), and treasury management (Utopia Labs*). DeFi-focused tools provide APIs that give developers access to a variety of DeFi primitives. Gaming-focused tools (Venly*, Joyride*, Horizon Blockchain Games*) provide solutions for creating virtual worlds and blockchain-based games.
Evolving development stack
The protocols, infrastructure and developer tools mentioned above make up the nascent but growing web3 developer stack. The modularity and interoperability of web3 means that stacks can be combined in endless ways to create new and interesting applications.
While our emphasis on frameworks and layers may remain the same, we continue to see new developer tooling primitives emerge and expect the entire stack to change dramatically over the next few years.
Coinbase Ventures will continue to invest in next-generation platforms and developer tools, ultimately bringing millions of developers to web3. If you’re as committed to building a web3 development stack as we are, we’d love to hear from you.
Posted by:CoinYuppie，Reprinted with attribution to:https://coinyuppie.com/coinbase-research-web3-developer-stack-guide/
Coinyuppie is an open information publishing platform, all information provided is not related to the views and positions of coinyuppie, and does not constitute any investment and financial advice. Users are expected to carefully screen and prevent risks.