The Act of Building with Nader Dabit | ETHDenver 2023
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
Speaker
The Act of Building In this captivating talk, Nader Dabit, the Director of Devrel for AAVE companies and Lens Protocol protocol, as well as the founder of Developer Now, dives into the fascinating world of "The Active Building." Join us as we explore his inspiring career pivot and delve into his passion for working on groundbreaking projects. Throughout the video, Nader will shed light on the challenges faced when building in this space. From scalability to security, UX to accessibility, and civil resistance - these are just a few of the hurdles that developers encounter. Stay tuned as he unveils various protocols that have emerged in recent years to tackle these very challenges head-on. But that's not all! Brace yourself for an exciting live cutting demo where Nader showcases how to build a mobile app using one of their SDKs. Get ready to witness firsthand how innovation meets practicality. Don't miss out on this enlightening discussion about "The Active Building" and gain valuable insights from an industry expert. #ActiveBuilding #DeveloperInsights @naderdabit Director of Developer Relations Aave Companies Nader is the Director of Developer Relations at Aave Companies, focused on Aave and Lens Protocols. He’s been working as a software engineer and developer advocate for over ten years in different capacities, including over three years at AWS and two years in the blockchain space. https://twitter.com/dabit3
Transcript
Okay. So today I'm going to be giving a talk called the active building. My name is Nat Dabbitt. I'm the de director of Devril for both a companies as well as Linds Protocol and the founder of developerd. And this is um an early time I think a little bit um to be giving you know a talk coming to a talk here at E Denver.
So thank you everyone that came out this morning. Um, so I want to kind of give an overview of a few of the things that I've been really thinking about a lot lately, especially in my career pivot in the last few months to join the lens team and a lot of the stuff that I'm passionate about working on. And the uh introductory talk part of this talk is going to be talking about those things. Then I'm going to talk a little bit about lens protocol and then I'm going to give a live coding demo of building a mobile app using one of our SDKs. So I first want to talk about what I think are kind of the main categories of of challenges for building in this space.
I've been a developer for 11 years. I've worked in the uh traditional tech world for nine of those years. I came into the blockchain world from AWS where I was um working on the serverless front-end teams for a little over three years. And um these are the same things I think a lot of other people kind of agree upon in general. And um a lot of these things overlap with each other.
But uh really scalability, security, UX, accessibility, and simple resistance are some of the main challenges that we're trying to solve. And if you actually look at a lot of the protocols that are out here being built that are kind of um coming to market in the last year or two, a lot of them are just focused on solving these challenges. like we still see a lot of layer ones and layer twos and stuff like that, but we're now seeing other protocols that are uh kind of coming on online trying to solve one or more of these issues. So, I want to kind of talk about now the solutions that we've started seeing coming to market in the last year or two. So, when I first joined the space, it wasn't that long ago, two years ago, but I think things have progressed a lot in the last two years dramatically though with the market turmoil and things like that.
you kind of have um this imbalance of excitement I think depending on who you're talking to but I think for builders or for developers there's never really been a better time to be working in this space so for scalability a lot of the things that are happening in the infrastructure layer on on layer twos and rollups and things like that as well as new data availability primitives like what Celestia is doing um even some of the stuff that you see with arbitram nova experiments around data availability are making the uh networks cheaper faster faster and more accessible and more types of applications can come online because of that. We have you know modular infrastructure which I mentioned with Celestia and fuel um you now have these um approaches that are going more of hor horizontal scaling. So almost all of the the networks are now taking this approach to some extent um avalanche even um you know I would say most of the main uh larger protocols with like a long-term solution are kind of taking this approach and then you have now protocols on protocols. So a good example of this is the Arweave ecosystem. Arweave is a way to do permanent file storage.
But using Arweave directly is kind of slow and it doesn't have a good developer experience or a good user experience. So now you have like R uh you have warp contracts, you have EXM, you have bundler network, you have a bunch of different protocols on top of Arweave that are kind of these middle layers that just make it a lot better of an experience to use. You're kind of getting the best of both worlds. You're getting the web 2 user and developer experience, but you're getting the um all of the guarantees of a decentralized network. For security, we're now seeing actual come to market for things like EIP 4337 and account abstraction.
We have protocols that have account abstraction as a first class citizen. And I think the core of a lot of the challenges that people have when they come into the space and try to use an application kind of have a combination between security and and UX. And a lot of that just has to do with how wallets work and how they've worked traditionally. And we're seeing better wallets now. A lot of new um things that can be done using account abstraction will result in what we're now probably going to see happen over the next 6 to 12 months.
And in general, just a higher quality UX for wallets will improve security, I think. And then just maturity, maturation of all the stuff that's been happening. And then I will bucket kind of UX and accessibility a little bit together, even though they're also separate. When I speak of accessibility, I'm more talking about how can someone that wants to use our application use it without having to go through the pain in the ass of going to a um actual exchange, buying a token, then going and getting a wallet, being on the right network, transferring that token, then going through some, I don't know, bridge or something like that just to use your app, and then pay for each transaction. You're eliminating like 99% of the people in the world that want to use these applications by making them go through those hoops.
But now we are at the point where we can start treating blockchain infrastructure the same way we treat AWS and Google cloud infrastructure because the transactions are so cheap for certain use cases. Obviously not for financial use cases but for other certain use cases like gaming and um well I guess social which I'm going to talk about in just a moment. We can now say okay just like Twitter and Instagram we're not paying for each post. There is a cost that's happening under the hood, but it's so minuscule like obviously it doesn't make sense for them to charge users. It's all about providing the best user experience and they figure out a way to monetize in some other way.
Um, in addition to the fact that you're not paying for the transactions, we also don't need to be signing for every transaction for certain types of transactions. Again, obviously financial transactions, you want to have that security, but if you're commenting on someone's post or you're maybe um you know, doing some action in some game, you shouldn't have to sign that transaction, obviously. And if you think that if you think that people are going to deal with that, then you probably are, you know, not going to have good results as far as getting users to use your app. And then faster and cheaper networks obviously also results in better UX. As far as civil resistance, I don't think we're quite there yet.
I think Git Gitcoin Passport is a move in the right direction with the way that they've done their new API because with Gitcoin Passport's old SDK, it wasn't that easy to use. Um, with the API, you just literally get an API key and you can now hit their endpoint doing all types of stuff. And it's a nice improvement over what we had in the past. But I want to now talk more specifically to the the devs that are here around developer experience and really how the fact that the protocols improving um along with the improvements of all of the the APIs that we're seeing kind of combine for an easier and lower barrier to entry for us to build out applications that are more real world. And when I say real world, I'm talking about things that are not only financial use cases but more broad use cases.
So for developer experience, a lot of these things did not exist when I first joined the space. Um, hard hat and truffle were around. Hard hat was really great actually. Um, Foundry though is another improvement, another option that we now have. We have things like Bconomy and other different um, protocols and you could almost call them like centralized solutions that provide better UX.
It's some trade-off with decentralization. Um so with Bonomy you can do gasless transactions and account abstraction on any smart contract that's an EVM uh compatible network pretty easily. You have third web I mentioned getcoin passport I mentioned bundler network and you now you know web3 storage with web3 storage you don't have to deal with uh you know uh wallets and stuff like that you just need an API key. So these things are a lot more approachable to the average developer. um live peer video streaming, you know, obviously Rainbow Kit and and WagMe Hooks are very very um like almost every app I use I see in the world uses these now and those things didn't exist, you know, two years ago.
So that's pretty cool. Um but beyond that, let's say we want to actually implement features that are not just onchain features. So we have XMTP and stuff like that for, you know, sending encrypted DMs where you're kind of taking advantage of a protocol that's not really a blockchain protocol, but it has a lot of the same characteristics that we really desire out of decentralized networks. And the APIs are really simple to use. So if you've never used XMTP, it's a really nice uh way to kind of get up and running with with encrypted DMs.
And you and you inherit a massive user base of hundreds of thousands of users that are already there. you don't have to bootstrap that from scratch, which is a common theme that you see, I think, in in web 3. So, with better protocols, we're kind of now enabling more use cases. Not to say that financial use cases um themselves are not great and and and very valuable, but I think beyond that, we need to start realizing that if we want to onboard the next billion users, which is like a shitty meme at this point, but it is something that we all probably care about. um we we need to start thinking beyond just financial.
Not that we're excluding financial, we're just including them into a broader set of things that we can do. And to me, the most and it's not just to me, but a to a lot of people, the most two obvious use cases are these two, gaming and social. Why? Because we already have three billion users in the world that are going to be using games and we have almost 5 billion people that are using social. So, if we can take the primitives that blockchains and decentralized networks bring to the table and make improvements to what exists already, then it's kind of a no-brainer that people might want to to try these applications out.
If we can take all of the improvements in UX and kind of apply that and give someone an option where they don't have to kind of spend a week or a month learning something new, they can just pick it up and they like it and it makes sense to them. And guess what? At that point, they might have a wallet. And then we can say, "Oh, by the way, there's this thing called DeFi. There's these um applications where you can send money uh to anyone in the world without them having to kind of go through a bunch of hoops.
There's all these other things that you can do, but we onboarded you in some other mechanism. So, with that being said, you know, the the mass adoption that we're kind of like going for, I think, is kind of a function of those those three things. You know, you have a better quality developer experience, meaning more and better applications are going to be uh being built and experimented with at a higher faster pace. You have a higher quality user experience, which means the user using your app has a better experience and and will kind of stay around. And then you have more use cases, which means you're kind of like taking the five billion people that are already using these types of applications and you're not having to educate them.
You're just providing them with something that they want to use anyway. So with that being said, how many developers do you think there are in web 3 and blockchain? Well, this number is something that I talk about sometimes and people usually get offended when I kind of talk about the data that's out there. And it might not be that correct, but I think the most recent reports that I've seen say something like this. And this is a slide I took from yesterday's uh talk at Chainlink who actually really just announced something that's really cool.
the chain link functions they kind of allow you to talk to web two APIs from a smart contract that that are really a lot easier to get up and running with than the previous thing that they had but you know there or in in the range of like 30 to 60,000 I think blockchain or web3 developers in in the world today but there are 30 million devs worldwide and I think that by limiting the reach of the stuff that we're building to only blockchain developers we're really you know shooting ourselves in the foot we should provide provide APIs and use cases and stuff and we should not only say these are web 3 things. We should just say these are things they provide a you know trade-off and whatever or they provide these features and they're really nice to use. You should use them and the main selling point shouldn't be blockchain or web 3. The main selling point should be that they're just better and they need to be actually better before we can say that. So, with that being said, one of the things that I have really become interested to the point where I quit a job after being only there for a a couple of months to go work on it full-time is Lens Protocol and just web 3 social in general.
And if you asked what web 3, I'm sorry, what Lens Protocol is, it's basically the social layer for web 3. And if you want to look at it from the perspective of a developer, this is in my words. Lens is a protocol and a suite of tools and APIs for easily building social apps and integrating social features into existing apps. And two of the main focuses that we have that really speak to me are around developer experience and around user experience. So in most of our applications today, you do not have to pay gas.
Meaning you can say, "Hey, friend, in whatever place in the world, in the planet, whatever age, you can go use this app. All you need to have is a wallet." And when they post something, they don't need to sign anything. They don't need to pay for anything. They're just using the app like they're used they're used to doing it.
And the way we're doing that is because we're using lowcost networks and we have improvements to our infrastructure that will allow us to continue subsidizing these transactions at a very very very low cost. meaning that we can figure out other ways to pay for the actual network cost. And then signless transactions mean you don't have to sign every time you make a comment or a post. Just like how we wouldn't uh expect to sign into Twitter every time we made an action, we want those types of user experiences. Um we are focused on helping I would say grow a large number of uh different types of diverse applications.
So because as a developer you don't have to build out the backend. It's almost like a serverless type of infrastructure. If you've ever used Twilio's API and you ever need a messaging in your app, you don't go and spin up an EC2 instance and start writing a database and you know talking to these really low-level primitives. You go to Twilio and you say I'm going to pay you like 1 cent per message and boom, you're off to the races. These managed services have sprung so much innovation on the application layer for developers.
We now have an entire category that's called serverless that we all probably know if we've ever, you know, worked in the traditional web 2 space. So with Linds, it's kind of like a serverless infrastructure for building these um social applications. You don't have a DevOps team, you don't have a database engineer, you don't have a backend team, you don't have a uh anyone doing anything that's infrastructure related. You build the front end and the application backend is handled for uh for you by the team. So, as a front-end developer, we have developers of one that have built applications that are getting approached by VCs and stuff for funding because they've built something that's useful and high quality, but they've done so without any team.
It's just a single person. And um you know, that's really cool to see. And I'm going to show you how we're going to build a mobile app in like 5 minutes in just a moment. Um creator monetization. We want to really give uh creators a compelling reason to use our applications.
And and to do that, we can't just say this is a blockchain app, come use it because 99% of the people in the world again just don't care. They care about the things that they get out of those uh apps. And we can we can on web three. I mean, we can on like traditional social all we want, but there's a reason that there are 5 billion people using these applications. They're actually pretty good.
So, we need to provide a better version of that if we want people to actually take us seriously. And then a portable social graph basically means that you don't have to build up your following across 10 different applications starting from scratch. You can go to Orb and then a new app launches a month later called Lens Tube and you have those same followers and then a new app launches a few months later. Every app that comes online, you have all of those users. And as a developer, every app that comes online means more of a network effect.
And when you launch a new application, you're not starting from scratch. you have 200,000 or 2 million or 10 million or whatever number of users that you launched your app on to the lens protocol at that point in time and you're kind of not having to bootstrap that from scratch. From the developer experience perspective, we have a GraphQL API that's approachable by all developers in the world. You don't have to know anything about blockchains to get started. We have a React hooks library.
Uh you can hook into our APIs in as few as two lines of code. Also with our mobile UI kit, two lines of code to get started. We have integration embeds and widgets, a couple of ons of code as well. And then you can do stuff like build your own custom functionality. It would almost be like if you were like, "Hey, I want this thing to exist in Twitter and I'm going to go and I'm going to go get a job at Twitter and convince someone to to do this and I'm going to build it and then I'm going to quit."
But what if you could just instead just build that yourself and it would work? And I think you can uh you can kind of get the idea there. And a lot of these ideas are not just about Lens. I work at Lens so I love Lens and I shill it. But this is web 3 social in general and that's really what I'm kind of talking about and there are other options out there.
So check check those out. So now I want to show you how to build an app. Um and that's what I'm going to do now. And I wish I had um an actual uh microphone that was hooked to my shirt or something like that. But instead I'm going to attempt to live code an app with one hand.
So what we have here is a mobile app. Yeah, that would be dope. Thank you. That's awesome. Okay.
So, what we have here is a mobile app that is built with React Native and Expo. React Native is a way to build mobile apps with JavaScript. And as you can see, there's literally nothing here. It's a blank screen. I want to build out the beginning of a social app that looks pretty good.
So, I'm going to go ahead and um start off by importing um Do you mind bringing a little closer? I'm going to start off by importing the uh React Native Lens UI kit library. And I'm going to import a component called profiles. And using this profiles component, we first want to show someone a feed of something. So for this app, we're going to show them a list of recommended users.
So just by importing that one component, we can go ahead and drop that in here. I'm going to update the um padding on the container. And we'll set that to like 50 units. And then I'll probably have to refresh this app or maybe it'll refresh by itself. And boom, we have the kind of getting started of a mobile app.
Now, this is very customizable, but these are basically components that are built upon other components to give you this view. So, when we think of like a UI kit for the web, we have HT HTML elements like divs, buttons, and things like that. But at a higher level, we can abstract away those same components because every social app that you've ever been on has a list of posts, which could be videos, they could be pictures. You click on a post, you see comments. You click on a comment, you're able to make a comment.
So, we've basically componentized those into a library to kind of make that happen. So, the next thing we want to do is click on a uh a profile and view that profile details. So, to do that, we need navigation. And I therefore need to go ahead and import a navigation library. And here we're using React Native navigation.
I'm going to then render a navigation stack as opposed to just a single component. And now I need to go ahead and go ahead and create that profiles uh that profiles component that we saw earlier. And now if I save this, we have the same view, but now we have like a navigator that has a nice little title at the top. And theoretically, we should be able to click on one of these profiles and navigate to that. So to do that, I'm going to go ahead and create a new component called profile, like view profile to view an individual profile.
And here we are rendering a an individual profile component from lens that we'll go ahead and import now. And to make this all work, we just need to add one more screen here, which will be for this view profile component. And I'll drop that in there. So if I save that, I should be able to click on a and now boom, we have a profile uh detail view and internet's a little slow. So it's kind of uh slow to render, but all of these uh items again are very very uh I would say configurable.
So you can go in change the styling. You you attach click handlers to anything that is clickable and you can uh add your own functionality. To make this better though, I probably want to make mine a dark theme. So, I'm going to go ahead and import the dark theme from the um React navigation library. And I also am going to import a new component called the lens provider, which will allow us to pass global uh configuration to our app.
And I'm also going to import the theme from the um uh lens library. So now we can just drop in this lens provider. And we want to set the theme to dark theme. And now we refresh our app. We now have a dark theme app.
That looks to me a lot better than the previous one did. And then the final thing we might want to do is that we want we might want to make this searchable because you don't want to just give them the the data. You want them to kind of have some more control over it. Luckily, the search component that we have has a very similar API as the profiles component. So I can just import the search component.
And when we render our profiles, instead of rendering just a list of profiles, I'm going to render a search. And now, oh yeah, our time is up. Okay. So now we have a uh a searchable uh view and I can now click or search for Nat and um my profile is coming up and we're able to do that. Okay, so I'm over on time so I'm going to go ahead and wrap this up.
Thank you so much for your help. Uh go by the lens booth and get some swag and tell them, you know, VIP. Um so with that being said, next steps, build stuff with Lens with anything. It doesn't matter. Just have fun, you know.
That's how that's why we're here. But if you want to learn more about Lens, check out the Lens docs at docs.lins.xyz, the quick start guide. If you want inspiration, go to the lens.
xyz/app, see what other people are building, and join the discord. Thank you. [Applause]
Automatic transcript — names and jargon may be misspelled.