GM GM, welcome to what's going to be another great episode of Dev and Tell.
So if you didn't know Dev and Tell is a 30 minute podcast held every week allowing founders,
hackers and anyone in between to come on the show and showcase their product.
And today I'm exactly welcome Jonathan else who's a core dev at that that if you didn't
know that that is an AI powered decentralized app generator for developers so they can innovate
If you stick around for today's episode, you'll see Jonathan give us an overview of DapDap
and show us how we can get started using it today.
Alright, let's get into it.
GM, GM, welcome to the show, Johnny. Pleasure to have you on the show, Johnny. Thanks for having me.
It's a pleasure to be here.
Be a part of the community for a while now.
We always love having community members come aboard the show.
That's actually how the show was started since roots.
We're still living up to that.
I guess before we get into all the great content you have prepared for us,
would you like to give a shout out to the people who have been with us? roots. So excellent, we're still living up to that. I guess before we get into all the great
content you have prepared for us, would you like to give a brief introduction about yourself?
Sure, I've been a blockchain engineer for about six years. I didn't go to university. Instead,
I actually started a study group on Discord, entirely focused on solidity. Went through the headache of making tutorials,
having to go and learn and figure all that out.
And every time I made something,
I made the tutorial on it.
And I left a link to the study group
and I surrounded myself with blockchain engineers
I got really good at micro, macro kind of design thinking,
problem solving and blockchain engineering.
And kind of eventually translated, problem solving, and blockchain engineering, and kind of eventually translated that
to automating the developer experience,
or at least semi-automating.
Like it's, so at each stage of the way,
it gives you suggestions instead of, you know,
In such a high stakes industry,
you don't want to give AI full control.
Yeah, indeed. You want to rein it in a little bit,
want it to be a companion instead of the decision
And I guess, have you always been in the tech industry
or before starting your journey in Web3? All right. I was in data analysis before I got into Solidity.
And I got really bored of that role
because they were like, right, we all use Excel.
As a programmer, I taught myself some game development
and some machine learning.
So I was just so bored with that.
I was like, you know what?
I want to go into a new space.
Awesome. Yeah, I can imagine how monotonous it would get just working with Excel sheets every day.
So I think you made the right switch. So I guess in terms of starting with Solidity,
was there a particular reason you chose that? I imagine it was because of its popularity,
but is there anything that particularly stood out that was like, yeah, I need to go do this
now? I was like, yeah, I need to go do this now. Well, I always knew that I liked problem solving.
And I always knew that I wanted to start my own companies.
So when I seen the price of ETH go up skyrocketing,
I was like, well, that is nothing but proof of demand.
And so I figured, well, I'm going
to go and explore this space. And yeah, met
so many amazing people during this time. Yeah, it's been phenomenal. I've definitely, as
you said, right, definitely the right choice.
Yeah, 100%. And I guess of all those people that you met, were the co-founders of DAPTHAT, one of them.
And how did you basically end up at DAPTHAT? What's the origin story?
Okay, so by going through this journey, I networked with a lot of people.
Actually, one of the co-founders is sitting right next to me.
We've been working together for almost six years.
Two of the co-founders are over in Toronto.
This is actually a child product
of one of our main company products, which is Spark Engine.
So Jordan, the CEO of Spark,
he came up with this no-code platform
for kind of connecting different AI models and
responses to each other so we could automate large scale thought. And it was because of that,
that I was like, wow, this is, this is the thought engineering, right. And that eventually actually
led to me starting with thought engineering network as well. So kind of tying these all together.
Thought Engineering Network as well.
So kind of tying these all together.
I was like, I'm going to automate my intuition here
with Spark and create that.
And you're kind of not treading on the same social path
in terms of the rest of crypto, where everybody is mostly on X.
I hear that you had a recent big milestone
on LinkedIn. Did you want to share that?
Sure. I just got to 3,000 followers on LinkedIn. Yeah, I'm definitely much more active on LinkedIn
than I am on X. I'd prefer to kind of stay away from a lot of the hype and kind
of that. Yeah, I prefer focusing on like the fundamentals and I find that a lot more common
on LinkedIn than X. Don't get me wrong, I enjoy going to the Twitter spaces on X. But
in terms of just like general content, like it's much more focused on the fundamentals there.
Excellent and I've dropped the link to Jonathan's LinkedIn so definitely give him a follow there.
And congrats on crossing 3k. Well done. Well done. Yeah I guess with that I'm very eager to see what you have prepped for us today.
I certainly would love to be a thousand times more efficient in my development day today.
For sure, man. Well, I'm happy to show.
All right. Yeah, the floor is yours. Go for it. Okay, perfect. Okay, so we have DAPTHAT. As said, we've got a
couple of networks that we've integrated with the moment and we're looking for more EVM chains to
connect with and do co-marketing with. I do have, if you do want to kind of go over things a bit
slower, then there is a demo video here for you to go through. And there's also some example dApps here.
These were made with an earlier version of the generator.
So these are not as good as what's actually coming out
of the generator these days.
But I'll get started on this.
We do have a thing right now.
If you go onto dAppLat..com you can join Discord and you can get
some free credits to be able to use the generator and then if you've run out of credits then you
can just purchase it with ETH. We don't have our own token yet but the reason that we would be
looking to make our own token in the future is because we'd like to decentralize
the AI aspect of the generator and open up
to that side of the market as well in different vertical.
If you have a Spark Engine account,
then you can use an API key for that.
But most people from Web3 won't.
So here you can just connect your web-free wallet.
So it is buggy sometimes.
I'd say like one out of every 10 to 20 times,
it'll have an application error at some point.
But other than that, it's good.
It's going to ask you to sign a message.
If you're on Mac, then that sometimes doesn't come up,
but you need to sign that message
in order to actually log into the application
Today, we're gonna make like a tokenized fund.
So I'm just gonna say Crypto Ventures is the name.
The purpose of the fund is to manage investments across
the Web3 industry and manage investments across the Web3 industry for a tokenized fund.
And who's gonna be part of the community
is gonna be a fund manager.
Really, I should have put investors as well.
So this first of all is gonna take
this small amount of details we just gave
and it's gonna give a summary,
kind of about the name, the purpose,
the target community, the requirements.
And then you can either give some feedback
and reiterate on that, or you can accept and continue.
Here, I'm just going to, for the purpose of this demo,
I'm going to ask for a single page application.
If you do want to kind of push those boundaries a bit
and do a multi-page, I wouldn't recommend doing any more
than four right now, just because it can really get a buggy right down the line.
For this, I'm just going to choose for the UI black
Kind of a luxury feeling for the investor.
The features are like on the DAP something kind of simple, let's say manage investments, token allocations and investors into the fund. It should be fine. We'll just go ahead from here.
If you haven't got any credits in your wallet then you're going to get to this stage and it's
not going to let you go forward and it'll push you to get credits. But as I said, if you want to join
the discord then you can get a bunch of credits,
so it should be enough for you to go through the generator fully once.
We have first of all the Smart Contract functional requirements generation.
So this is going to come from two different levels.
One, the global requirements and then two, the actual requirements of the smart contracts as well.
I'm going to remove the fee handler. Now, I tell you now, you can near enough assume that most
these functional requirements are right, but if you have any specific changes you'd like,
you can always change them here. Delete functional requirements, delete contracts,
add new contracts and functional requirements
before you proceed to the next stage.
And even so, you can rename the contracts as well.
But I'm going good with this.
I'm just going to, for the purpose of the demo,
Now it's going to take about 90 seconds, right?
So what this is now doing is it's
going to take these functional requirements
and it's going to generate an array of tasks.
Each task doesn't need any information from the other task
in order to complete the task.
And the task is like the general plan of a smart contract.
So I'm going to generate some high level details
and slightly lower level details,
and then it's gonna combine those high and low level details
and go and use these to actually generate
the smart contract themselves.
So this is why it takes about 90 seconds for this stage.
But during this, while it's going through that,
I can show you some of the example dApps.
So I've been doing a build 30 dApps. So I've been
doing a build 30 dApps in 30 days challenge, something I'd never seen anyone ever do before.
So I thought, well, that's a good way to kind of stick out from the crowd. Some of these
are open source, some are not, some are client requests, so they've been kind of behind closed doors,
but I can kind of show you a little bit about these. So this one's one I made, which is an
NFT loyalty app where you're able to set up different rewards for different NFT projects.
This is mostly the generated UI. I made some little changes, but it made it very fast,
I made some little changes, but it made it very fast.
And I've got these deployed to the AVAX Fuji Testnet.
So thanks to Avalanche for going ahead and giving me way more Testnet funds than I needed in order to go through that.
And as I said, these are on my Twitter, these are on my LinkedIn,
so if you kind of want to go over these then and give me some feedback, you know they're open
source, so if you want to contribute to them, go ahead. All the smart contracts are tested
quite in depth. This one is time-stamped docs, so this is essentially being able to
So this is essentially being able to take any document, cryptographically hash it and store that on the blockchain as a sort of like timestamp notary for protecting IP and whatnot.
So that's one thing that we've been working on, which I worked on here. Again these were all made in 24 hours.
There was a bulk of it being made by the generator and then just whatever
things I want to do after that. I have no idea why I have so little credits.
That's an interesting one.
Anyway, hopefully that doesn't cause any problems.
Before once you get to this stage and you're generating your smart contracts,
it's going to give you the option to compile your smart contracts.
I have an API on the backend boots up and destroys a Docker container on command,
which essentially is a remote test execution
environment where you can compile your smart contracts,
remotely execute tests, flatten your smart contracts,
So this will give either detailed error
on what the error was of the compilation, if there was any.
And if not, then you're kind of good to go.
This is using, we use such a varied range of AI models
This is here, scroll the code there.
I'm going to hit compile.
I need to change that to say compiling once it's been
pressed. But this should come back in just a few seconds, right? So it failed. That's fine. What's
the error? Identifier is not a library or a name. Contracts, it's on line 16. Um, address, yeah, address isn't even imported here.
Well, some things happen.
Um, well, let me see one of the other ones.
This one is not using address, so that should be fine.
Um, obviously you can always edit these.
So going back to like this fast one fast one, based on the compilation error, I can go in here.
We only support open zeppelin contracts at the moment, but you can go in here and you
can change the code as you need it before going to compile again. And again, they will show you the updates and whatnot.
So this one, the compilation is successful.
I'm just going to skip past this last one for now.
Let me go and generate some tests here.
Again, this takes about 90 seconds.
It's going to generate, first of all, the high-level test cases.
So not the code itself initially, just the high-level test cases.
We use about six, I think six different models here
to analyze smart contracts from different points
and find out, okay, well, this is...
And then we combine them all together.
So we have a very comprehensive test coverage suite at a high level, and then you can generate
It's also going to find, analyze the contract and find if it needs any mock contracts in
order to make sure that this contract standalone is being tested with these mock contracts and then it will generate those mock contracts as well if there are any that are needed.
massive amount of time but during this time I'll go back to some of the other DAPs.
This was probably my favorite one that I made out of all of the dApps so far.
I made a dex in 24 hours, where it kind of adds
in a bunch of different features,
like whale protection, right?
So dumping protection, when you're deploying the DEX,
you can set a percentage that is the maximum percentage
that a token can be impacted by on price and on purchase.
And then also MEV bot protection.
So for those that don't know,
MEV is maximum extractable value bots,
and they'll essentially front run your transaction.
transaction fee than your transaction to buy before you buy and then they'll sell right after
you or you know the opposite way they'll sell first and then they'll buy after but that way
they're able to kind of sandwich your transaction and take a bunch of value out you there and so
this is resistant to that because purely because there's a four second delay.
And for blockchains that have a lot of transactions going through them,
but that four second delay is enough to kind of stop your transaction A being able to be front run,
because then just your transaction would fail, right?
And you can definitely get some interesting stuff here.
So I can just see that I've got one,
and I could swap that now.
So this has now got the mock contracts it's required.
It's found that it needs to make.
one which covers so many different mock contracts required. So here you have your test cases,
it should successfully deposit tokens and update balances correctly. You can see here that there's
a number of different types of tests, so functional security, stress type, and edge case tests.
You can edit these, it shows which smart contracts being tested, you can delete them, you can add
new ones if they're not kind of meeting the requirements that you have, and then you can
generate the code here. It's running for Hardhat, not foundry support yet,
but that is something that we are looking to add.
This should generate now.
So you've got your expect from Chai, scribe statement,
It's getting the contract factory, deploying it,
getting the signers, doing everything that it needs to do in order to actually go ahead and generate and execute the test.
I haven't seen... Okay, so it's came up with the mock contracts now.
Is there a mock EOC20, just a mock ERC20?
Yeah, this one, mock ERC20.
So that should ideally run first time.
If not, it's going to give me an option here to edit the code.
I've got to say the testing of the smart contracts
and the integration of the smart contracts and the integration of the smart contracts into the
components, the area where it needs the fuel and most work in the generator to make it
better. But it's getting there. Missing in constructor argument for what the, is this the, ha, that must be the, the mockier C20.
Yeah, the initial supply. Okay. So let's add in here, edit this code, and let's add in here,
that, you know, a million or whatever that is. Save that, run that test again.
So we'll see here that ideally this works now.
But it kind of goes through that kind of process.
Right now when I'm using the generator,
it's like optimal speed, I'll completely skip past the tests. Just because I
know that you see here insufficient allowance, now I just need to go in and add that kind of
part to the code. The reason I kind of skip past this when I'm using the generator in my build 30
dApps in 30 days is because currently I haven't got it so the tests actually download at the end.
Currently I haven't got it, so the test is actually download at the end.
But generally at the end you can download a Next.js project with APIs and database.
I'm not going to do that one, but I'm going to look at the investment vault. So
I can compile this contract and you're about to see the entire ABI bytecode on the page
because that's not beautiful yet, but it's getting there. Once that happens, scroll past that and you can go down to deploy contract.
You can select network here.
So we have Polio Testnet, IOTA EVM, Testnet, Moonbeams, Moonbase,
Alpha chain, and then Avalanche Fuji.
If you haven't got these in your wallet already,
it's going to request that you connect to that chain.
So here if I want to do IOTA, it should,
ha, maybe it doesn't want to today.
Generally it asks me to connect to that chain,
maybe because I've already done it before.
But yeah, you can hit and deploy
and then you can go ahead and send that through.
I'm just going to, the point of this, I'm not going to deploy for the through. I'm just going to...
For both of those, I'm not going to deploy for the speed.
We're just going to go next,
and we're going to focus on the web application side.
So this is now going to analyze the smart contracts first,
figure out what functions would need to be integrated into the front end,
and then it's going to bring up what the pages are,
what the components are for each one.
So a hero section, a fund overview,
portfolio stats, recent transactions.
And instead of recent transactions,
I'm gonna make this a fund management dashboard.
And then I'm gonna be fine with that.
So if I wanted to rearrange these,
you can really just drag and drop them
to rearrange them before you confirm. just drag and drop them to rearrange them
Once you've confirmed, it's now going to generate context
for each of the components.
What's the primary function, user goals,
and context, content, even, functional requirements,
You're able to, again, you're able to change these
as you go, as you go through it,
but for the point of speed, I'm just going to go into the next stage. So this is where it starts
mapping the smart contract functions to the components, kind of getting ready for, before
we go and generate everything up. After it's done that, it's then going to generate the styling. So a primary, secondary, and accent color.
If you remember at the start, I asked for black and two
different colors of gold, but it brought up one of these.
You can just click on here and you can go ahead
So now we have those there.
I'm just going to hit Next here.
And this is going to focus on creating the high-level plan
So these are for cell serverless APIs.
It's generally made so it can be deployed on for cell.
I know, centralized provider.
We will get to decentralized tech as fast as possible.
This will then give you the API name, endpoint, method,
You can go through all these different stages
before you actually go to the generation.
For the purpose of this, just kind of skip over them.
And then it's going to use all of the information it's got
so far in order to generate a database schema.
So what's the table name?
Or can it mean nulls or a foreign key restraint?
You can delete these, like full essentially current operations
on here, and then able to go to the next one.
So this is where it gets to the final dashboard
This is like review section.
It's going to show you what components there
are for the pages, the context, the smart contract functions
and APIs that are integrated into what components,
what environmental variables are required for the APIs,
what's the data format going to and from the API from the front-end components, and then again
the database schema, so you can kind of review it all before it goes into this next stage.
That's funny, there's a login and logout function for smart contracts that I never noticed.
BSC here has like the APIs up here,
and then it's got the smart contract functions
that will tell you what smart contracts being integrated,
the color scheme, the environmental variables required for it,
data formats, and then into the schema again,
one more time before kind of go through, save and submit.
This is probably the part where I actually
has the best user experience
in showing you what the hell's going on.
So we've got the components.
The components here take the longest to generate, right?
The reason for that is because we just upgraded it from,
I figured it was, it was either GPT or Claude 3.5 to Claude 3.7.
And the components come out so much better than they did before.
So, you know, taking that little bit extra time is, it's not terrible, at least.
If they do fail, it retries generating that component up to three times before it gives up on it.
And for the APIs and the SQL, way quicker at generating the components, it will generate the components first.
Just wanted to make sure that we don't get rate-limited on these. While that's kind of going through, we'll go through move one more of these
dApps that I made. So this is the procrastination pool. Essentially you would
stake tokens and the longer you take to unstake, the more you are rewarded.
But you have a fixed amount of time.
So if you procrastinate so long that you miss the deadline,
you'd lose the tokens that you staked.
So it's just a funny joke, kind of DeFi thing that I made here.
And yeah, it didn't take long, this one.
But you can see how much you're able to stake here and whatnot.
And it would calculate it as well.
For the purpose of this, I'm not going to go into the actual outcome.
Anyway, so it's retrying these.
While it's retrying these, I'll go into DAP number five,
which is a Roommate's Republic,
which is a DAO for the household, you know,
who's making what payments for the bills for who's got the, doing what chores.
And yeah, it's, it's it's there's a lot lot to go
for here I mean if you want to find these you find them as I said on my
Twitter or my on my ex sorry or LinkedIn I can post them there under
hashtag 30 daps in 30 days yeah I'm trying to like make sure we can do this
full of time and I noticed that we're at the half hour. Um
These these won't take much longer. Oh, that's fine. I
Guess while these are cooking up. I have a few questions I can ask
These credits, do you get a starter pack come out when you sign up?
And on average, how much does it cost credit-wise to generate, to adapt?
Okay, so this is, if you join the Discord, you get 1.5 million credits,
which is why I was so confused
at why I have so little credits on here.
But it costs somewhere between like one
to maybe three, four million,
depending on how big of a DAP you're making.
Overall, that costs about between two and $10, let's say, to generate a DAP you're making. Overall, that costs about between $2 and $10,
let's say, to generate a DAP.
Hopefully, these actually succeed.
I haven't had these fail on me while going through the generator,
and with such a small amount of components being generated.
So, finish cross that works.
But yeah, no, you get some usage for going through and joining the Discord.
Make sure that you've connected to DAPT that first and you've signed the message, that'll add you to the database so we can just easily give
you the credits there. Oh my gosh! That's a shame. Yeah. Hahaha.
I need to go and answer the door.
those failed to generate.
You can always kind of go back
This is actually go back to the start
of the web application design.
So I'm just going to kind of go off of that now,
but you kind of get the idea, right?
Sometimes these things happen as we're in early
stage. But I've been doing a dapper day using this, right? So I use this to get like 98% towards the
end of the project and kind of just like top off, change a little bit, some things here and there,
and then push it forward into live. So sometimes it crashes, sometimes it's great.
But yeah, I'll figure out why that bugged out today.
It's all part of being in beta, right?
You gotta fix the bugs that come out.
But yeah, I mean, it looked amazing.
Like even those ones that you had generated beforehand
and were showing in between,
they look like pretty full featured apps,
which is pretty neat to see only going through
what the single tool that basically guided you
through requirements and like helped you test
and generate components at the same time.
I guess, once the app is created, and I'm assuming it's deployed to for cell, like you
mentioned, and then is it possible for the end user to obtain the code that's generated
or is that hosted by yourselves?
You download, no, we don't host it.
This is a bit more of like an anarchistic point of view.
It's like, we don't want that responsibility.
You take it, you have it.
There's the code, you download it.
And yeah, you'll have your APIs, your SQL,
or your Next.js project. And yeah, you'll have your APIs, your SQL, your next JS project, and you're able to quite easily deploy that to Vercel or change it up to whatever tech stack it
is that you're looking to change it to. But yeah, it gets you the bulk of way there and
we'll add more support for different technologies as we go. This isn't something that we got any investment for, this is entirely
bootstrapped. So yeah, we've had a lot of headaches, but a lot of really fun times with this. And it's
just kind of crazy how far we can really push this now. Yeah, I mean, you're trying to basically automate the development lifecycle, so that's no easy feat.
So that's amazing how much progress you all have made
And I guess you kind of teased at some of the things,
but is there anything in particular you'd like to share
about the roadmap for that coming up?
Yeah, yeah yeah there are.
I've got some really cool ideas for DAPTHAT.
So on Spark currently we have text to 3D model
and we're kind of looking at different kind of gaming
style AI models we can integrate there.
So we'd be looking to kind be looking to convert this into a play-to-earn game generator.
And then from there into...
I don't know if I should say...
Yeah, well, I want to convert it into a metaverse generator, right?
So people would be able to generate their own games, their own characters and assets
and kind of be able to take them across different,
all those different platforms.
So yeah, there's quite a few,
quite a bit of the roadmap to go.
But yeah, thanks for asking.
Yeah, of course, of course.
We always love the alpha on the show.
And yeah, looking forward to all the features
you guys are cooking up there.
And I guess seeing as we're pretty much at time,
what would you say is the best way for people
to get started with Adapt.at?
It seems like it's just as easy as
signing up during the discouraging credits but if people are looking for
support or one reach out or have future requests what's the best way to do that
you can either message me directly or you can contact us in the discord we're
we've got people around the world.
So two of us are currently in Germany,
two of us are currently in Canada.
So we've got quite a good amount of uptime
so we can respond generally fast.
And we'd love to hear your feedback
on where you think that we should improve
and which kind of direction we should go in.
Because after all, yes, I built the bulk of this
because I wanted it, for one.
But at the same time, whatever you guys
are wanting it to become, we'd love
to hear about that because obviously we
want to build the best tool for the community.
Amazing, I love to hear that. And yeah, just thank you again so much, Johnny, for taking the time out of your day to come on the show. I really appreciate it. DAPTAT looks like it's well on its
way to automating a lot of the headaches us devs go through just wanting to build cool
Look, I have a repeating hairline because of coding.
I want to get rid of that headache.
Thank you. Thank you so much for having me, Narv. It's been a pleasure. Yeah, yeah, yeah, yeah. Exactly. I agree with you, man.
Thank you. Thank you so much for having me, Narv. It's been a pleasure. I really appreciate it. My pleasure as well. It's been great.
And for folks that have been watching us live, I'm dropping a link for you to be able to claim your BitBadge's attendance badge. So if collectibles are your thing,
definitely check that out.
I believe you'll have an hour from now
to be able to claim that if you are interested.
And with that, just wanna wish everybody
a very happy Friday, happy weekend, wherever you may be.
And we will catch you back here next week
for another episode of Devon Town.