NFT Project Series Part 13: Understanding the Fundamental Difference Between Web 2.0 & Web 3.0 Versions of NFT App
Learn the Fundamental Differences Between Web 2.0 & Web 3.0 Versions of NFT App?
We are finally here! Nearly at the end of this series. Till now, we learnt how to build the same NFT app in two different domains: Web 2.0 and Web 3.0. In this article, we will learn the differences between the two in brief.
Let Go of the Label!
Web 2.0 and Web 3.0! One of the tragedies of us humans is that we are constantly fooling ourselves with jargons to feed our ego by making sure our mind constantly lives in the "Maya" or "Illusion of Knowledge". Even in this small domain of Web development, we are doing the same when we divide the web into 2.0 vs 3.0!
Truthfully speaking, these labels don't matter if you are interested in learning new knowledge rather than showing off that you know something new has arrive in words. So, let's look into these terms:
1. Web 2.0
The current way of building web apps. In this we use servers to host our app and these servers are centralised in nature. This also means our data is in the hands of server providers and app builders. For servers, we pay some monthly or yearly subscription fees to keep it running. On the app end, we use REST APIs or GraphQL or SSR and other techniques to have data-communication. In short, everything we do today is a part of this label!
2. Web 3.0
In plain and simple terms, we are just changing the way we are going to develop our app when it comes to backend. And due to that, whatever it takes to make sure the user experience is smooth as today, we will make appropriate changes in the frontend. That's all this is. When we change backend, we are moving away from centralised server to decentralised server. Off-chain (current server scenarios) to On-chain (Blockchain). This means, data is public and ownership is with the user. This also means that it's nearly or absolutely impossible to delete data. Second key feature here in Money as data. Or Crypto tokens for simplicity. Native payment system is the default here.
So, here are the two takeaways in this project series:
1. Ease of payment:
When we built the off-chain app, we avoided tipping functionality altogether. Why? Because it's hectic. The problem of choosing between the payment gateway service divided by countries and implementation (as a developer) and so on and on. However, this is so native in on-chain app that we coded it with just 4-5 lines of code in our contract to enable payment mechanism which is also universal. As long as we have a browser, some required token, and a wallet extension; our place of origin doesn't matter!
2. Permanent data storage:
When we created keyboards in first 7 part of tutorial, we saw that these are stored in our respective database: Supabase, MongoDB, MySQL, etc. That means, regardless of what is created by the user, we (centralised data entity) can change their values if we want and whenever we want. Data loss is the usual issue in some extreme cases. However, when we did the same in the latter part of the tutorials, we stored them on-chain. Meaning, they are immutable. It means, each NFT we created has a unique hash associated with it which is immutable. This right here, is what gives value to most on-chain NFTs in the market. Uniqueness!
And that concludes this article. If you have anything more to add that you learnt in this series, do comment. See you in the final conclusion article!