Recently, we were reflecting on a few of things that make developing dapps a superior experience to the way things are done on Web 2.0 stacks. Sometimes, you can get lost in the trees such that you forget to look up and see the forest for what it is (even if it is a dark forest).
The main things we’ve observed in designing dapps is that it removes four costly aspects from software development, saving time and money in the long run. The four areas dapps put the axe to are as follows:
Death To Servers
When recently configuring our dapp, we deployed it as a completely static website with no POST access, only GET. The entire app is a client-rendered site that has no POST requests and no backend server or api. What a relief! No need for server OS patches, Docker containers or even serverless functions to worry about. No need to pay for that compute either! No need to deal with caching layers. In this way, dapps make life so much easier, as all “api” calls are queries to the blockchain, which are easily configured using proxy classes generated from Typechain, Hardhat and Ethers.
Death To Databases
Through the years, we’ve seen it all: SQL, No-SQL, Redis, you name it. And we’ve seen all the hassles that come with those storage layers: SQL injection attacks, partition key nightmares, grumpy DBAs, backups failing, cache invalidation problems. But in the Web 3 world, the blockchain is the database. Again, “outsourcing” the storage layer to the blockchain affords huge savings in both time and money.
And, in the case of NFT metadata, those JSON files are easily rendered with a script and stored on either a centralized or decentralized (IPFS) service. (Side note: initially, we were generating the JSON metadata with a server, but ran into all the usual problems of caching and load and found generating all the JSON and uploading to storage was way simpler, cheaper and more efficient).
Death To Identity Architectures
Web 2 brought identity and, with it, brought the nightmare of OAuth, JWTs, access tokens and user management. With Web 3, all that nightmare just vanishes: your identity is your address (or ENS name) and, if you can’t prove yourself to the client with your private key, you can’t use the dapp. Again, it is simple and elegant, removing so much development hassle. It’s arguably more secure than the Web 2 model, as hardware wallets and software wallet evolve.
Death to Payment Providers
Lastly, dapps obviate the need for payment providers and dealing with merchant fees, credit card companies, chargebacks and the like. Using Web 3 as a checkout mechanism is similar to the abstraction that PayPal offers, but even better: decentralized, no fees to the seller, no tracking, international by design. Once the learning curve is tackled for how to invoke a signed request over Web 3 where the user sends tokens, things fall into place and the time/money saved is enormous.