I decided to investigate and learn about blockchain, crypto, smart contracts and decentralized apps (dapps) A.K.A Web 3.0 from september 24, of 2021. I got curious about the term from the hype on twitter but it was more hype than truly helpful information with some valuable exceptions.
I am kind of documenting the journey and sharing my learning process hoping that can be useful for someone else but also expressing my own opinions.
The following lists express the order of my learning process but I didn't have to finish one to start the other. for example I was learning concepts yet, and doing the cryptozombies course.
1 - Learn the concepts.
It is kind of hard to assimilate and embrace an idea that challenge the status quo in so many ways. We tend to be cautious, skeptic and critic about it, specially when we heard just good things and anything negative.
By reading about the idea, the goals, the key concepts, how it works and the things web3 need to improve to materialize its final goal; we emphasize more with it.
These are a good places to start:
I wrote about this in my article an honest look at web3
Web3, Blockchain, cryptocurrency: a threat or an opportunity? by Shermin Voshmgir
2 - Consume
By looking for and using some implementations of web3 applications OR Descentralized Apps(Dapps), we can understand what kind of applications we can build, the use cases and real world examples.
In my particular case I downloaded Brave browser as the implemented a nice use case to gain tokens for view to the adds, installed my metamask wallet, and started to follow people on twitter that provide useful content and resources.
3 - Get your hands dirty.
The primary blockchain to build smart-contracts and dapps is Ethereum in addition its platform Ethereum Virtual Machine (EVM) is compatible with other platforms like Polygon(Matic) for example, so by learning solidity, one of the language of EVM you can make smart-contracts for multiple blockchains.
cryptozombies is an excelent resource that cover all the things you need to know to build your first contracts and dapps. since the basics of the language, libraries, ERC721 how to use other contracts with yours, how to handle security, how to connect with oracles to how to connect your frontend with a smart contract. All this in an interactive gamified tutorial.
4 - Build, build and build.
After the cryptozombies course, I thought the right direction was to get my local environment to build my repos and code my contracts with the learnings of the course.
After some research My stack was like this:
Hardhat - Flexible, extensible and fast Ethereum development environment for professionals.
Vue 3 - The Progressive JavaScript Framework
ethers.js - JS library for interacting with the Ethereum Blockchain and its ecosystem
Brave Browser/Google Chrome with metamask extension
I choose to use Vue because I feel comfortable with it and it is my favorite framework but you can use whatever framework you like react, svelte, etc.
5 - Deploying to the world.
The next step after creating a smart contract and having a working frontend that interact with the smart contract, is deploying to let other use it and why not show case the working example in your portfolio.
This tutorial by Nader Dabit helped me with this and in addition, learned how to build a marketplace and about Polygon and Infura.
6 - Learning about cryptocurrencies
Cryptocurrencies are the fuel of Web3 they move the economy, they move the smart contracts and transactions that happens in the platforms. if you take a look at them you will see that most of these tokens have a platform behind Ether has Ethereum ecosystem, Links has Chainlink which is a set of oracles that you can use in your dapps, Solana is also an ecosystem that have its own a blockchain that allows you to build smart-contracts and so on.
- Binance - App to buy/sell crypto
- CoinMarketCap - App to keep track of your portfolio and market prices.
- Whiteboard Crypto channel that explain different platforms, tokens and concepts of web3
In this step watch out with the scammers, don't take anything as financial advice and do your research before invest in a token.
7 - Iterate and get stronger.
With every step you get better and better in the next iteration you can build a more robust environment setup with an advanced hardhat setup I am planning to share the setup I did here. this will be another article
Complement your dapps with services like moralis, pinata for IPFS storage, etc.
In my case at this point I learned how to generate assets for my NFT's with hashlips
8 - Going out of the comfort zone.
Participating in hackathons at least once in life is a good way to inspire you and put you in the zone. In this state you can apply all the things you are learning, brainstorm ideas, see a lot of use cases for new technologies, interact with other developers and find communities with the same interest as you.
I participated in the chainlink hackathon I don't know if I am going to win anything yet, but the things I learned and applied are very valuable.
Patrick Collins: Aside from beginner make advanced topics well explained.
Chainlink oracles: Allow communicate smart contracts with off-chain data.
Conclusion.
After going through this steps and resources I gained some knowledge and built kind of fun things I hope this post help you to start building some smart contracts and have fun learning something new.
The post is unfinished because I will be adding more things as I go farther.
Thanks for reading. If you have any questions the comments are open, or if you like Twitter as well as my Github where I do some experiments and projects.
Top comments (21)
Does web3 comes with a solution to do realtime communications?
You can send events from the contract when an action happen and send data. You can listen to those events in your frontend.
But you wouldn't want to much data flow on chain. Moralis offer options for off-chain database with real-time.
It means we still need centralized databases or cloud deployments to create realtime apps with web3?
No there's descentralized hosting options. And moralis roadmap is to be open but I put it to mention a case I know. It should be other options solving those problems without directly require centralized things.
Also how is the database support? are there good decentralized DBs you spotted? BC can do transactions and other stuffs...but real world commercial apps requires much more ways to store data
I was talking with a friend of mine the other day about this. options like orbit.db seems good to try, there are others but I don't think are at the level of what we know in te current web.
And I am more of the thinking of a combination in these early days of the stack. We can say semi-decentralized taking adventage of things were the stack shines(payments, identity, immutability, financial) rather than go wild and force to be decentralized for the sole reason of it at this point.
The most useful examples I know Apply this.(Brave Browser, gitcoin, zed.run) and waiting to see how the space and tools evolve in my opinion.
yep, i also think this hybrid approach would be good
Thanks @jesusantguerrero for putting this together. Must say it's very refreshing to see blockchain concepts being applied to VueJS for a change. I know web3.js is front-end agnostic, but to look at all the examples out there you'd think there's no other front-end framework besides react. Thanks again.
I noticed that too, there are many react/web3 related things than other frameworks. I hope this to change next year and more resources come out in vue at least.
Thanks for reading and glad to know it was useful for you.
What will be the roadmap for developing a dapp like pinterest?
Roadmap or approach? Because that is an specific implementation.
My approach would be define the data is worth to have on chain. cause every write would on-chain require sign/GAS payment from user to add to the blockchain.
Setup a hardhat project to define your smart contract with solidity and test it.
Store the images and off-chain data on pinata or any other IPFS service.
and ethers.js with my favorite framework to interact with the smart contract.
Other option is Moralis, they offer servers, multiple chains support, db, and IPFS, etc there's a doubt I have with them about centralization/vendor-locking even though they are very accepted in the community and plan to be open source.
Thanks for replying, I am trying to learn these new tech.
Nice share , I need to learn the web3
Thank you. go for it. It is an entertaining and interesting topic for sure.
Excellent share
thanks
Great post @jesusantguerrero !!
Thanks Juan 🙌🏽.
It is a progressive, incrementally adoptable JavaScript framework for building UI on the web. best tantrik in Raipur
Really enjoyed this post! Thanks for sharing.
I'd also recommend you to checkout buildspace: buildspace.so/
They have web3 projects that are really fun to follow along and build cool stuff!
You're welcome, glad to know you liked it.
And thanks for sharing, I'll check it out.
In case you are interested in Web 3 and DAPPs check out ethairballoons, an ORM library for data storage in the Ethereum blockchain.
github.com/petrosDemetrakopoulos/e...
Some comments have been hidden by the post's author - find out more