My web3 journey from web2 dev

Albert Purnama โ€ข 2022-04-21

background

Full disclaimer, I'm not an expert in the field. As a matter of fact, it has been long rumored that I am actually a fool, so don't trust anything I say.

Hey nerds, welcome to the first entry to my blog. I'm Albert, co-founder of Typedream. I will write more stuff about the tech I'm working on, my thought processes on projects that I'm making, my learning from doing these projects, and some exciting technologies coming our way.


I've been observing the web3 space for a few months now, following some tutorials on Buiildspace, reading stuff from a friend's web3 handbook, and reading up on some cool stuff being made on various chains.

I want to start talking about the current state of web3 development in this blog post, how I got started, how it is going so far, and what I'll do over the next few months.

The Beginning

Right before the crypto crash in December 2017. My team (the same team that built Typedream now) was trying to convert a physical passport into basically today's NFT. It was a project for some hackathons, this was the first time I got introduced to solidity.

At the time, there are not really enough resources for you to start making something. There were tutorials, but there are not enough of them to really get you started on making more complicated, highly usable contracts.

Fast forward to 2021, started seeing the price of crypto rising, and started to be pulled back into this crypto hype. Shortly after, more and more people are starting to build NFT projects using Typedream.

The Problem

Of course, the number one rule of building something is to solve a problem with whatever it is that you're building.

The problem that I see with the rise of these NFT projects is that there's a lack of utility for their NFTs.

I want to start building something that can instantly add utility to their NFTs. Since Typedream recently pushed the CMS feature, I think it's going to be a huge value add to these NFT projects so that they can push out content in their Typedream sites using Typedream's CMS, then somehow only allow NFT holders to access these contents.

So the idea of making Locks is born, I'm not going to explain the nitty-gritty details about how locks work in this post, but I did share a bit about how locks work under the hood in my tweet:

The Available Resources

The way that I most efficiently learn is usually by making something trivial first, such as the "hello world" tutorial for web3. There are a lot of resources for this, I did Buildspace's courses on making NFTs just to get the details on how NFTs work under the hood.

Then I start to read more into ERC-721, ERC-20, and ERC-1155, what each of them is, what differences they have, etc. You don't have to read OpenZeppelin's code on these implementations, I just know they existed, and if there ever comes a time for me to actually fiddle with the implementation, I will read OZ's docs.

After I understand all these concepts, I can pretty much do a lot of things with this, I can extend ERC-xxx implementations, try to make some shitty protocols, etc. But that seems very difficult to do.

How can I combine existing tools that I have (web2 knowledge) and apply them to web3? Turns out you can read data fairly easily once you understand the basics.

Typedream Lock's Stack:

  • Thirdweb's Golang SDK to read states of the contract (token balance, owner check, etc)
  • Wagmi for frontend wallet connection and contract read

Once you understand ERC-721 are very similar to how you define interfaces in regular programming languages and realize that the blockchain is just the database, the smart contract is just the code implementing ERC-721 with its variables stored in the blockchain, you can treat SC as your backend server.

To read data from any server, you need some basic communication protocol, like HTTP. In the web3 world, it's very similar, but it's not a regular CRUD HTTP request, you need special kinds of adapter to be able to talk to the blockchain. But I don't need to know that, I just need tools like wagmi that allow me to communicate with the blockchain using simple function calls.

With wagmi, you have pretty much a complete set of things you need to be able to communicate to the blockchain. You just need to know what contract address you want to talk to, and what functions are available to call (these are called ABIs, but it's a topic for another day).

What can you make? Pretty much anything, you can even make a fully working Uniswap defi clone with it (of course still using Uniswap's backend/contracts), you can make your own NFT gallery, make token gated contents (like what I did for Typedream).

The Next Thing

I've made Locks, it's out there, and people are giving me feedback on how to improve it. But I want to see how I can extend the functionalities of Locks in the future.

For now, I'm adding more support for Solana, and more support on EVM-compatible L2 chains, side chains, etc.

I'm also making my own NFT for fun, it cost nothing. DM me your ENS so I can airdrop you something weird ๐Ÿ‘€

The Conclusion

Web3 development grows rapidly, resources/tools are available anywhere you see. You can start to build pretty much anything you can imagine.

You should start with any tutorial you can get your hands on, and start cloning people's project, make edits, make contributions, see how your web2 knowledge can play part on this beautiful new world ๐ŸŒˆ

๐Ÿ‘€

Like what you're reading?

Suggest new blog topics down here!

Your name?

What do you want me to talk about in my next blog?

*


See More Posts

My web3 journey from web2 dev

Albert Purnama

My web3 journey from web2 dev

Albert Purnama

My web3 journey from web2 dev

Albert Purnama


Apurn.eth

Copyright ยฉ 2022 apurn.eth. All rights reserved.

Connect with me

Twitter

Legal

Terms of Servicee

Privacy Policy

Made in Typedream