
A Few Frameworks More for Dash Incubator - 3
Anthony Campolo adds Svelte, Solid, Lit, and Preact examples to Dash Incubator while restructuring the monorepo and debugging a Lit component.
Episode Description
Anthony Campolo continues building Dash Incubator framework integrations, adding Svelte, Solid, Lit, and Preact examples while restructuring the monorepo and troubleshooting a stubborn Lit component.
Episode Summary
In this third installment of the Dash Incubator framework integration series, Anthony Campolo picks up from previous episodes where React and Vue examples were established, working through a planned set of seven sample frontend applications connecting to a shared Express API. He walks through the project's structure, cleaning up package.json files across the monorepo, verifying the wallet creation script and environment variable setup, and confirming the React, Vue, Svelte, Solid, and Preact examples all work end-to-end against the Dash testnet. Throughout the build, Anthony reflects on how ChatGPT generated nearly all the framework variants on the first try, with the notable exception of Lit, which became the episode's debugging puzzle due to JavaScript decorator support and older syntax patterns. Conversations with viewers including Fuzzy Bear and Ryan branch into the broader meaning of Dash as a functional DAO funding open source work, the relationship between DPNS and traditional DNS, and how projects like Tim Berners-Lee's Solid and Bluesky echo Web3 ideals without using the term. The session ends with Lit still misbehaving but a clear plan to revisit it.
Speakers
- Anthony Campolo
Chapters
00:00:00 - Setting the Stage and Project Scope
Anthony opens episode three from a different setup due to family visiting and outlines the plan: continue from React and Vue by adding Svelte, Solid, Lit, Preact, and a vanilla JavaScript example for seven total. He explains why Alpine got dropped (no Vite starter) and TypeScript was pulled out, and greets early viewers in the Dash community along with an accessibility expert from Microsoft Learn.
The conversation drifts briefly into accessibility feedback on Anthony's website, particularly around link styling where removing underlines leaves color as the sole indicator. He acknowledges some undocumented CSS tweaks that broke parity with the original template and notes he wants links to both change color and underline on hover, setting up the housekeeping mindset that runs through the rest of the session.
00:04:14 - Walking Through the Monorepo Structure
Anthony reviews the project layout, demonstrating how a fresh user would clone the repo, install dependencies, copy over the example environment file, and run the create-wallet script. He explains that the network defaults to testnet and walks through how the client module was split in two so pieces can be imported independently, while flagging that the wallet creation flow could be smarter about detecting an existing mnemonic.
He follows his own README instructions step by step, popping the generated mnemonic into the env file and confirming the path forward. Along the way he gives his verdict on package managers, recommending pnpm and dropping yarn instructions entirely, while leaving npm support in place for newcomers.
00:08:51 - Express Server, React Frontend, and Vite Environment Variables
After fixing a missing package.json reference, Anthony gets the Express API serving and curls the name endpoint with a test domain, confirming it pulls in the Dash identity correctly. He then attempts to wire a server URL through environment variables into the React frontend but pauses, noting React 18 and Vite handle env vars differently than older Create React App conventions.
He moves on rather than getting bogged down, hardcoding localhost for now and acknowledging deployment to Railway is a task for another day. The React example renders successfully, and he transitions to verifying the Vue example, where he spots a small inconsistency: Vue displays "null" before fetch where React simply showed blank, which he files away as a polish item.
00:13:36 - Svelte, Solid, and a Tour of ChatGPT-Generated Code
With Vue confirmed working, Anthony tackles Svelte and Solid, noting that nearly every framework variant was written by ChatGPT and worked on the first attempt. He's struck by how consistently the model translates variable names and patterns across frameworks when viewed side by side, saving him from writing half-hearted versions for half the frameworks.
He mentions an upcoming Dash Weekly appearance to discuss using ChatGPT for this kind of multi-framework scaffolding, and observes that frameworks predating September 2021 fared best, with the only notable failure being Analog (an Angular meta-framework) due to its recency. Solid surprises him by serving on port 3000 instead of the usual Vite ports, and renders cleanly without the null-state issue Vue had.
00:26:51 - Fuzzy Joins and the Pitch for Dash as a Functional DAO
Fuzzy arrives in chat and Anthony catches up about the new gig at the Linux Foundation, which becomes a launching point for explaining what Dash actually is for someone outside the crypto world. Dash is a cryptocurrency aiming to be genuinely useful, with a DAO that allocates a percentage of mining fees to fund work, which is how Anthony is being paid to build these examples.
He frames this as evidence for a long-running argument he's made since 2018: properly designed Web3 projects offer a real solution to open source sustainability beyond VC-fed nonprofits. The money landing in his bank account, he notes, makes it harder to dismiss the model. Ryan offers to send Fuzzy some Dash to play with, and Anthony recalls his own habit of onboarding people via small NFT gifts like the Loopy Donut.
00:33:32 - Dash Identities, DPNS, and the DNS Question
Anthony shifts to explaining what the Express server is actually doing, which is keeping the Dash client and its credentials safely server-side and exposing a name lookup endpoint. He sketches future plans to move this onto Vercel or Netlify serverless functions and eventually edge functions, while noting that Dash library dependencies have made each platform's quirks bite the first time through.
He compares Dash's DPNS naming system to Ethereum's ENS, IPFS's content addressing, and traditional DNS, observing that the Dash docs read as slightly contradictory about whether DPNS names are "domain names" in the conventional sense. The discussion expands to Tim Berners-Lee's Solid project and Bluesky as Web3 ideas rebranded to escape the toxicity attached to the Web3 label.
00:46:50 - Preact Works, Lit Begins to Fight Back
Preact comes online cleanly with no null or undefined states, completing the easy half of the remaining work. Anthony then turns to Lit, which is the one framework he had not actually imported yet, and immediately runs into trouble because ChatGPT's older training data and Lit's class-component idiom create friction with what he is trying to build.
He starts hand-editing the component, splitting render functions, removing unnecessary slots and constructors, and quickly admits class components are not in his comfort zone. He pastes the broken component into ChatGPT for help, hoping for a quick fix to get the button rendering alongside the heading.
00:54:36 - Decorators, Dependencies, and Wrapping Up
Suspecting environmental rather than logical issues, Anthony nukes node_modules and lockfiles to do a clean reinstall, swaps from pnpm to npm to rule out compatibility weirdness with Lit's tooling, and commits the in-progress changes. The new error message is different from the previous one, which he treats as informative progress, and a hint about JavaScript decorators not being supported points him at a likely root cause.
He confirms decorators work in TypeScript but he has stuck with plain JS for the project, leaving Lit unfinished and acknowledging he mostly wanted the exercise to learn the framework rather than because anyone would request it. He floats Enhance as a possibly better fit for a future episode, thanks viewers including James Doe, and signs off promising to return next week to finish the build out. The episode ends at 01:03:00.
Transcript
00:00:03 - Anthony Campolo
All right, hello everyone.
00:00:05 - Anthony Campolo
My name is Anthony Campolo.
00:00:07 - Anthony Campolo
Welcome to episode three of building frameworks with Dash's stuff.
00:00:13 - Anthony Campolo
I'm in a bit of a different setup because I got relatives here, but should be fine.
00:00:20 - Anthony Campolo
We're gonna be continuing on where we were before.
00:00:23 - Anthony Campolo
We had done React and Vue.
00:00:26 - Anthony Campolo
And so we're going to do Svelte, Solid, Lit, and Preact.
00:00:32 - Anthony Campolo
Then a vanilla JavaScript example, so that would give us like seven examples, which is probably more than enough.
00:00:39 - Anthony Campolo
I decided to take Alpine out because there wasn't like a Vite starter for that, so it kind of stuck out.
00:00:45 - Anthony Campolo
And then I took out TypeScript.
00:00:48 - Anthony Campolo
So, because.
00:00:55 - Anthony Campolo
Let me go ahead and ping Ryan in case he wants to come watch.
00:01:00 - Anthony Campolo
We got one person watching.
00:01:01 - Anthony Campolo
All right.
00:01:02 - Anthony Campolo
Hello, person out there in the world.
00:01:07 - Anthony Campolo
Ooh, I got the AJC Web Dev Discord handle before anyone sniped it from me.
00:01:19 - Anthony Campolo
What's up, Ben?
00:01:23 - Anthony Campolo
And you're watching on Dash Incubator's YouTube?
00:01:27 - Anthony Campolo
Oh, no, you're watching on mine now.
00:01:29 - Anthony Campolo
I'm streaming from four places.
00:01:34 - Anthony Campolo
This is people from the Dash community.
00:01:38 - Anthony Campolo
Probably don't know you, but this is accessibility expert and developer at Microsoft.
00:01:44 - Anthony Campolo
What's the name of your team?
00:01:45 - Anthony Campolo
Because I remember the name changed.
00:01:47 - Anthony Campolo
So remind me of that.
00:01:51 - Anthony Campolo
Something to do with education or learning, pretty sure.
00:01:55 - Anthony Campolo
But Microsoft Learn.
00:02:00 - Anthony Campolo
A longstanding ally.
00:02:02 - Anthony Campolo
Ooh, really interesting.
00:02:03 - Anthony Campolo
Feel free to say more or not.
00:02:07 - Anthony Campolo
Yeah.
00:02:11 - Anthony Campolo
We should figure out a way to make it worth your time where you can give me some accessibility tips.
00:02:17 - Anthony Campolo
I feel like my actual website could probably, I don't know if there's, I hope there's no glaring holes with it.
00:02:21 - Anthony Campolo
There's always going to be stuff we can improve, you know.
00:02:24 - Anthony Campolo
You're not really streaming anymore, though, so I can't just hop on a stream and make you fix stuff for me.
00:02:33 - Anthony Campolo
All right, let me start sharing my code here.
00:02:38 - Anthony Campolo
We can just jump right into it.
00:02:45 - Anthony Campolo
Double check all my windows.
00:02:47 - Anthony Campolo
Yeah, see, there's a window.
00:02:57 - Anthony Campolo
All right, we remove link underlines, which makes them indicated by color alone.
00:03:02 - Anthony Campolo
So you're saying to underline.
00:03:03 - Anthony Campolo
It's like, that's really funny.
00:03:05 - Anthony Campolo
This is part of, there's like weird CSS stuff that's been happening in mine because
00:03:12 - Anthony Campolo
I had changed lots of like little things.
00:03:14 - Anthony Campolo
This is one of the things that I tweaked and changed in the styling a little bit.
00:03:18 - Anthony Campolo
And so there's like some small changes I made but never documented.
00:03:21 - Anthony Campolo
So now that I'm trying to get parity back with the original template, I'm like reversing all these small changes.
00:03:28 - Anthony Campolo
So I had to like rethink whether it was actually the right thing or not.
00:03:31 - Anthony Campolo
But getting the links to both change color and underline is the thing.
00:03:38 - Anthony Campolo
I think it might be, it's already underlined, and then when you hover, both the text and the underline change color.
00:03:44 - Anthony Campolo
I think that's what the ideal thing I wanted was.
00:04:00 - Anthony Campolo
All right, you heard it here, folks.
00:04:02 - Anthony Campolo
That's a fine approach.
00:04:05 - Anthony Campolo
Yeah, it's not what it's doing right now, though, so I need to get it to go back to doing the thing I want it to do.
00:04:14 - Anthony Campolo
Okay, so let's kind of review just the last couple projects so we can get some context for what's going on.
00:04:24 - Anthony Campolo
I've also got most of the structure of this kind of figured out.
00:04:30 - Anthony Campolo
Maybe I'll find the links.
00:04:32 - Anthony Campolo
You can do whatever you want on it.
00:04:35 - Anthony Campolo
So I shouldn't make all of my links clickable divs.
00:04:40 - Anthony Campolo
That would not be the thing to do.
00:04:45 - Anthony Campolo
So one thing that might make this a little cleaner is if we created then one more subfolder that had all of them.
00:04:58 - Anthony Campolo
So I think I'm just gonna keep it like this.
00:05:04 - Anthony Campolo
There's the API, which right now has this Express server.
00:05:11 - Anthony Campolo
So the first thing you want to do is you want to get this one running because this is what's going to power everything.
00:05:20 - Anthony Campolo
And I also have readme instructions.
00:05:24 - Anthony Campolo
That should work with pnpm, npm, or yarn.
00:05:30 - Anthony Campolo
I would recommend not using, actually.
00:05:33 - Anthony Campolo
Yeah, okay, it's time.
00:05:35 - Anthony Campolo
It's time.
00:05:37 - Anthony Campolo
Don't need to include instructions for yarn.
00:05:40 - Anthony Campolo
People should not use yarn.
00:05:42 - Anthony Campolo
But it's set up pretty well for pnpm right now.
00:05:49 - Anthony Campolo
So this will get, actually.
00:05:54 - Anthony Campolo
So I'm going to create another new wallet for if you're just getting started, I'll clone this down to show you.
00:06:02 - Anthony Campolo
Let me just follow my own instructions.
00:06:04 - Anthony Campolo
So first you clone it.
00:06:06 - Anthony Campolo
Let me take that out.
00:06:09 - Anthony Campolo
And then install dependencies.
00:06:12 - Anthony Campolo
And then this will copy over your environment variable examples to this.
00:06:19 - Anthony Campolo
It already has your network set to testnet because I think that's like the only net running right now.
00:06:24 - Anthony Campolo
And you can put a, if you already have a wallet address, a mnemonic,
00:06:29 - Anthony Campolo
you can go ahead and fill those in.
00:06:31 - Anthony Campolo
But if you're starting from scratch, you can run the create wallet script, which is here.
00:06:44 - Anthony Campolo
So this is using the client.
00:06:49 - Anthony Campolo
I ended up splitting the client up into two things, mostly because I wanted to be able to import client stuff separately.
00:07:05 - Anthony Campolo
So that's why I'm importing and exporting client just right here.
00:07:11 - Anthony Campolo
But the client, some of the stuff I need to decide whether I want this to actually do this or not.
00:07:19 - Anthony Campolo
But what would be nice is if it were to check whether you had a mnemonic or not, and then was able to handle that.
00:07:30 - Anthony Campolo
Because if you were to run the create wallet command, I think you can get it to — and you already have a wallet —
00:07:37 - Anthony Campolo
then it'll know what to do with that.
00:07:40 - Anthony Campolo
But let's do this for now.
00:07:50 - Anthony Campolo
But where we want to start is we want mnemonic to be null.
00:08:01 - Anthony Campolo
Let me just pop it in here for now.
00:08:08 - Anthony Campolo
This should do what we want to do, I think.
00:08:29 - Anthony Campolo
That is the thing we wanted.
00:08:32 - Anthony Campolo
And just copy paste that, pop it in here.
00:08:37 - Anthony Campolo
At this point, we're all set up to run the server.
00:08:41 - Anthony Campolo
So the server, you'll pnpm serve it.
00:08:47 - Anthony Campolo
And so I'm just gonna step here, I believe.
00:08:51 - Anthony Campolo
I gotta tell us to go into the API folder.
00:09:04 - Anthony Campolo
So I've got this package.json, but not a package.json here.
00:09:11 - Anthony Campolo
So I don't want to do that.
00:09:17 - Anthony Campolo
Let's see.
00:09:41 - Anthony Campolo
Okay, so it's trying to find the API server, but it's in Express.
00:09:48 - Anthony Campolo
There we go.
00:09:59 - Anthony Campolo
Now we can get this going again.
00:10:02 - Anthony Campolo
So let's do a couple things here.
00:10:07 - Anthony Campolo
Cache up on 3X.
00:10:10 - Anthony Campolo
Yeah, so they're slow rolling the Discord usernames like Chantastic and Theo.
00:10:16 - Anthony Campolo
They got theirs a couple weeks ago.
00:10:21 - Anthony Campolo
What was as popular as Chantastic and Theo?
00:10:23 - Anthony Campolo
By that logic.
00:10:25 - Anthony Campolo
And more popular than you.
00:10:28 - Anthony Campolo
But yeah, I mean, AJC Web Dev, who else would want it at this point?
00:10:37 - Anthony Campolo
So this, we're going to go localhost:3001, name, ajc-webdev-test.
00:10:50 - Anthony Campolo
Save the Trexes.
00:10:53 - Anthony Campolo
I'm not sure if I fully get that.
00:10:57 - Anthony Campolo
I mean, I know it's like a plan to save the trees, but what is the X?
00:11:03 - Anthony Campolo
Like Star Trek's?
00:11:06 - Anthony Campolo
Save the T-Rexes.
00:11:07 - Anthony Campolo
Oh, I see.
00:11:09 - Anthony Campolo
Ambiguous.
00:11:10 - Anthony Campolo
Save the T-Rexes.
00:11:11 - Anthony Campolo
That makes a lot more sense.
00:11:13 - Anthony Campolo
I was imagining Trex or Trexes as a single word.
00:11:19 - Anthony Campolo
This is now pulling in our Dash domain name.
00:11:26 - Anthony Campolo
So let me put this here.
00:11:43 - Anthony Campolo
I like this one.
00:11:45 - Anthony Campolo
Yep.
00:11:49 - Anthony Campolo
Okay.
00:12:05 - Anthony Campolo
And you can also
00:12:09 - Anthony Campolo
set this, if you're so inclined, to here.
00:12:15 - Anthony Campolo
And then I can bring in here.
00:12:24 - Anthony Campolo
Server URL.
00:12:29 - Anthony Campolo
Wait, this is the frontend, not the server.
00:12:33 - Anthony Campolo
So I want this in React over here.
00:12:39 - Anthony Campolo
Yep.
00:12:47 - Anthony Campolo
I think React 18 doesn't make you do all the weird environment variable stuff you used to have to do.
00:12:54 - Anthony Campolo
Actually, I haven't even verified this works yet, so let's hold off on that.
00:13:10 - Anthony Campolo
So.
00:13:14 - Anthony Campolo
Now, since we're going to be using the React example, so we're done with this stuff.
00:13:19 - Anthony Campolo
There's nothing.
00:13:20 - Anthony Campolo
That's all the steps.
00:13:21 - Anthony Campolo
So the steps were clone it, install dependencies, set up your .env file, create your wallet, serve your
00:13:33 - Anthony Campolo
Express server, and then curl it.
00:13:36 - Anthony Campolo
So at that point, any of the frontends are going to hit something like this.
00:13:48 - Anthony Campolo
This I definitely want to change.
00:13:52 - Anthony Campolo
So this should be mnemonic here.
00:14:02 - Anthony Campolo
I'm going to try leaving off the command for syncing and just see if it actually makes a difference.
00:14:09 - Anthony Campolo
Okay, so now what we want to do is we're going to want to go into the readme of our React.
00:14:14 - Anthony Campolo
So we can go there from here.
00:14:20 - Anthony Campolo
So if we look at this,
00:14:22 - Anthony Campolo
you can kind of click into any of these projects from here and it takes you straight to the readme.
00:14:32 - Anthony Campolo
And let's see if those steps still work.
00:14:36 - Anthony Campolo
So now we're back here.
00:14:38 - Anthony Campolo
Keep this running.
00:14:39 - Anthony Campolo
Back to Dash examples.
00:14:44 - Anthony Campolo
And whether you want this step to also be in there, I'm probably going to leave them in there because they're helpful.
00:14:56 - Anthony Campolo
I should probably warn them, though.
00:14:57 - Anthony Campolo
They need to set up their server first, though.
00:15:02 - Anthony Campolo
For now, though, let's do this.
00:15:06 - Anthony Campolo
So it would have been like that.
00:15:17 - Anthony Campolo
And then I also included the component in the README of each because each of them, this logic is all the same.
00:15:27 - Anthony Campolo
And it's kind of cool seeing them all in comparison because since they're all written by ChatGPT except
00:15:36 - Anthony Campolo
the React one, it's so consistent in terms of how it names each variable, like what it, how it translates, like when you look at them side by side.
00:15:44 - Anthony Campolo
And it's pretty awesome.
00:15:47 - Anthony Campolo
It would have taken me a while or I would have just done like half-assed versions for half the frameworks.
00:15:56 - Anthony Campolo
So, ChatGPT. Oh yeah, and on Monday, I'm going to be with the Dash Weekly show again to kind of talk about using ChatGPT for this.
00:16:12 - Anthony Campolo
It was really easy.
00:16:13 - Anthony Campolo
Like, the Vue one worked out of the box.
00:16:17 - Anthony Campolo
The Svelte one worked out of the box.
00:16:19 - Anthony Campolo
I think all of them worked out of the box except Angular, and that's because I was using Analog, which is a new framework.
00:16:27 - Anthony Campolo
If a framework did not exist prior to September 2021, then you're going to have significantly worse results.
00:16:38 - Anthony Campolo
So if I kind of fed it a bunch of individual files of an Analog project, it would be able to figure it out.
00:16:46 - Anthony Campolo
But there was something in the router.
00:16:49 - Anthony Campolo
And luckily, I'm good friends with the creator of that framework.
00:16:51 - Anthony Campolo
So I'll ask him, hey, what's happening?
00:16:58 - Anthony Campolo
But aside from that, the Lit example, I think, even worked.
00:17:04 - Anthony Campolo
So let's look at this one right now.
00:17:08 - Anthony Campolo
pnpm dev, but I need to fix the package.json in this one.
00:17:14 - Anthony Campolo
This is kind of a holdover from when this was all in the one package.json and I had npm run all commands.
00:17:25 - Anthony Campolo
That's still pretty nice to do.
00:17:29 - Anthony Campolo
And I might go back and include those steps and just throw it in the readme if someone wants to just run all.
00:17:39 - Anthony Campolo
Or even be cool, like do, and that would run the server.
00:17:42 - Anthony Campolo
And then every single frontend framework on a different port.
00:17:46 - Anthony Campolo
Just because chaos is fun.
00:17:50 - Anthony Campolo
Okay, this looks good so far.
00:17:54 - Anthony Campolo
Will it fetch the data?
00:17:56 - Anthony Campolo
Fetch the data, all right.
00:17:59 - Anthony Campolo
So now let's go back and see if we can do this like that.
00:18:12 - Anthony Campolo
Yeah, no.
00:18:16 - Anthony Campolo
Because you need to do, there's a thing, there's a thing.
00:18:21 - Anthony Campolo
Actually, no, it's because it's Vite.
00:18:24 - Anthony Campolo
Vite is the one who has the thing.
00:18:25 - Anthony Campolo
Vite environment variables.
00:18:28 - Anthony Campolo
import.meta.env.
00:18:31 - Anthony Campolo
I always forget.
00:18:38 - Anthony Campolo
Give it.
00:18:49 - Anthony Campolo
I probably freaked out because it didn't turn into a string correctly or something.
00:19:08 - Anthony Campolo
Not worth it to figure out right now.
00:19:12 - Anthony Campolo
Because you can just kind of, for now, just hard code localhost in there.
00:19:18 - Anthony Campolo
And then I still haven't deployed this anywhere yet.
00:19:24 - Anthony Campolo
Let me just try this on Railway.
00:19:31 - Anthony Campolo
That's another thing for another time.
00:19:34 - Anthony Campolo
Okay, so we got the React one, and then let's just double check the Vue one.
00:19:38 - Anthony Campolo
That should be all good.
00:19:40 - Anthony Campolo
So we're going to kick out of here, go into Vue.
00:19:45 - Anthony Campolo
I gotta fix these package.jsons also.
00:20:09 - Anthony Campolo
Okay, cool.
00:20:11 - Anthony Campolo
Okay, so you do notice just a slight thing that's different now.
00:20:15 - Anthony Campolo
It's showing null here, whereas React, I think it was just blank.
00:20:21 - Anthony Campolo
So that's something to fix. Right now, though, I want to just get all the examples working.
00:20:25 - Anthony Campolo
So let's make a note of that.
00:20:41 - Anthony Campolo
Readjusting.
00:20:45 - Anthony Campolo
Screen.
00:20:46 - Anthony Campolo
Real estate is valuable.
00:20:50 - Anthony Campolo
Okay.
00:20:53 - Anthony Campolo
We need this, these separate.
00:20:55 - Anthony Campolo
That's what I want.
00:20:59 - Anthony Campolo
Okay, great.
00:21:02 - Anthony Campolo
So Vue works.
00:21:04 - Anthony Campolo
Changed anything yet?
00:21:07 - Anthony Campolo
Of course we have.
00:21:09 - Anthony Campolo
That's good.
00:21:12 - Anthony Campolo
That's terrible.
00:21:21 - Anthony Campolo
That's good.
00:21:24 - Anthony Campolo
Let's do this though.
00:21:39 - Anthony Campolo
Save this also.
00:22:01 - Anthony Campolo
Actually, I do want this here.
00:22:40 - Anthony Campolo
Just to make sure.
00:22:43 - Anthony Campolo
I'll link back up to here.
00:22:55 - Anthony Campolo
Good housekeeping.
00:22:56 - Anthony Campolo
Let's commit this.
00:23:25 - Anthony Campolo
Okay.
00:23:27 - Anthony Campolo
So that was two.
00:23:35 - Anthony Campolo
Close, close, close.
00:23:37 - Anthony Campolo
Close, close.
00:23:45 - Anthony Campolo
This, I don't know if either of you or anyone else watching watches Dax, one of the people behind SST.
00:23:53 - Anthony Campolo
He did a Between Two Ferns parody with Fred Schott a while ago.
00:23:59 - Anthony Campolo
He just put out one yesterday with
00:24:06 - Anthony Campolo
Rich Harris and the creator of Svelte.
00:24:09 - Anthony Campolo
It's really funny.
00:24:20 - Anthony Campolo
Bring back on Lex Fridman.
00:24:23 - Anthony Campolo
Yeah, this is the stuff.
00:24:25 - Anthony Campolo
It's so funny.
00:24:28 - Anthony Campolo
Okay, let's get back to this.
00:24:31 - Anthony Campolo
Get the Svelte one going.
00:24:41 - Anthony Campolo
Okay.
00:24:50 - Anthony Campolo
Great.
00:24:52 - Anthony Campolo
There's also, oh, I was going to make a note.
00:25:15 - Anthony Campolo
And then also,
00:25:22 - Anthony Campolo
you'll notice that should be here.
00:25:25 - Anthony Campolo
I had it correct with a little bit of CSS that got lost in the process at some point.
00:25:43 - Anthony Campolo
And then, okay, so that was undefined.
00:25:47 - Anthony Campolo
I was a little sad it was undefined because JavaScript.
00:25:51 - Anthony Campolo
That's really funny.
00:26:04 - Anthony Campolo
Great, great.
00:26:09 - Anthony Campolo
Do Solid now.
00:26:23 - Anthony Campolo
That's obnoxious.
00:26:24 - Anthony Campolo
This one, unlike all the others, went to 3,000.
00:26:29 - Anthony Campolo
Solid.
00:26:30 - Anthony Campolo
Having fun with us.
00:26:33 - Anthony Campolo
Previously, it has been
00:26:38 - Anthony Campolo
the one that's hard to remember.
00:26:41 - Anthony Campolo
Five something, something, something.
00:26:51 - Anthony Campolo
Hey, what's up, Fuzzy?
00:26:54 - Anthony Campolo
How you doing?
00:26:56 - Anthony Campolo
Have you started your new job yet?
00:27:00 - Anthony Campolo
That's super exciting.
00:27:01 - Anthony Campolo
Congratulations.
00:27:09 - Anthony Campolo
Yeah, good to see you too.
00:27:13 - Anthony Campolo
Your new gig is at the Linux Foundation, right?
00:27:16 - Anthony Campolo
Like a thing that's under or a part of.
00:27:19 - Anthony Campolo
I know that's many interlocking chambers of things.
00:27:25 - Anthony Campolo
So I have no idea what their structure is, but I'm pretty sure that's where you end up.
00:27:29 - Anthony Campolo
Something in that area.
00:27:40 - Anthony Campolo
You'll notice this looks like just create-react-app.
00:27:44 - Anthony Campolo
I mean, I can't believe it because you're a fuzzy bear, obviously.
00:27:49 - Anthony Campolo
Who wouldn't want to hire a fuzzy bear?
00:27:55 - Anthony Campolo
I'll hire a Fuzzy Bear in a second.
00:28:00 - Anthony Campolo
Okay, so this one needs a lot of work on the styling.
00:28:12 - Anthony Campolo
This one starts with, hey, look at that.
00:28:14 - Anthony Campolo
No null or undefined.
00:28:17 - Anthony Campolo
And I bet going from JSX to JSX probably made that smoother.
00:28:24 - Anthony Campolo
One of my now bosses said — which thing specifically?
00:28:32 - Anthony Campolo
Oh, this is where I had.
00:28:34 - Anthony Campolo
Did this actually work?
00:28:37 - Anthony Campolo
I think it did.
00:28:43 - Anthony Campolo
So.
00:28:57 - Anthony Campolo
Oh, I know why.
00:28:58 - Anthony Campolo
Because I just set it as a string here.
00:29:01 - Anthony Campolo
I didn't do a process.argv at all.
00:29:03 - Anthony Campolo
Of course that works.
00:29:08 - Anthony Campolo
Wow, hire Fuzzy Bear here.
00:29:09 - Anthony Campolo
Yeah, that's right.
00:29:12 - Anthony Campolo
So what was your connection to that?
00:29:14 - Anthony Campolo
Like, did you know someone there already who was working, or did you reach out, or did they reach out to you?
00:29:20 - Anthony Campolo
I'd be curious.
00:29:23 - Anthony Campolo
They're like, hey, we want some of that Scottish energy.
00:29:26 - Anthony Campolo
You know, we don't have enough Scottish people, obviously.
00:29:34 - Anthony Campolo
So what is Dash?
00:29:36 - Anthony Campolo
So I don't remember where you fell on the whole cryptocurrency thing, but Dash is a cryptocurrency.
00:29:43 - Anthony Campolo
I know you, I think you're someone.
00:29:45 - Anthony Campolo
The Express is Solid.
00:29:46 - Anthony Campolo
Yeah, so you almost can't tell at all this is a crypto project, can you?
00:29:53 - Anthony Campolo
So it's a...
00:29:56 - Anthony Campolo
That's a very fuzzy story.
00:29:59 - Anthony Campolo
Yeah, I bet. I can imagine you would have dabbled in this at some point.
00:30:03 - Anthony Campolo
But Dash is aimed at trying to make a cryptocurrency, which is the Dash cryptocurrency, something actually useful.
00:30:19 - Anthony Campolo
More fuzzy than Astro's story.
00:30:21 - Anthony Campolo
There, well, actually, so I got a funny crypto Astro story.
00:30:29 - Anthony Campolo
You go to this, Ben Holmes, and me
00:30:37 - Anthony Campolo
had built out a project using
00:30:40 - Anthony Campolo
this one, taking Astro to the moon with QuickNode.
00:30:43 - Anthony Campolo
So we connect Astro to just an Ethereum smart contract.
00:30:50 - Anthony Campolo
So this is the thing, every Web3 stack has a frontend framework, and Astro is like a perfect one to use.
00:30:56 - Anthony Campolo
That's why I always say Web3 is Jamstack by default, because they all have a decoupled client that's
00:31:04 - Anthony Campolo
it just doesn't fetch Markdown or JSON or from a database.
00:31:08 - Anthony Campolo
It just does it on the blockchain.
00:31:12 - Anthony Campolo
It's just any other endpoint.
00:31:15 - Anthony Campolo
So I'm doing this, and yeah, so Dash is paying me in Dash to build these examples and to stream it.
00:31:22 - Anthony Campolo
And they have a DAO that is apparently functional and they have a certain percentage of mining fees that go into it.
00:31:35 - Anthony Campolo
And this is, so I've been saying this for years.
00:31:38 - Anthony Campolo
I read about this back in 2018.
00:31:40 - Anthony Campolo
I made this pitch many times in 2022 that Web3 and DAOs, if they're set up correctly, have a solution to open source sustainability.
00:31:49 - Anthony Campolo
Like we've always talked about, there's no solution to make sustainable open source.
00:31:54 - Anthony Campolo
And so that's why we have all these VCs feeding all this money.
00:31:56 - Anthony Campolo
And it's like, no, we actually have a perfectly viable solution.
00:31:58 - Anthony Campolo
And I now know it's a viable solution because the money is in my bank account.
00:32:06 - Anthony Campolo
It's pretty rare, I think, for a project to get to this point.
00:32:12 - Anthony Campolo
But this is why Dash is a very interesting project and has been around for close to 10 years now.
00:32:20 - Anthony Campolo
Okay, so I missed this one.
00:32:21 - Anthony Campolo
Comparing Rich to the game with him.
00:32:23 - Anthony Campolo
Oh, yeah, he's watching the video.
00:32:25 - Anthony Campolo
So, Ryan, you should make more of a pitch to Fuzzy about why Dash is cool.
00:32:31 - Anthony Campolo
I think I covered most of the things you usually cover.
00:32:33 - Anthony Campolo
Here we go, the original DAO.
00:32:36 - Anthony Campolo
I like that someone wrote this article already for me.
00:32:39 - Anthony Campolo
Seven years ago.
00:32:40 - Anthony Campolo
Is this really that old?
00:32:41 - Anthony Campolo
Wow.
00:32:51 - Anthony Campolo
Disclaimer, we take no responsibility for this article you're about to read.
00:33:05 - Anthony Campolo
Yeah, I mean, one did.
00:33:11 - Anthony Campolo
As those come out, as it started.
00:33:19 - Anthony Campolo
Yeah, proposed in 2014, that's what I thought.
00:33:21 - Anthony Campolo
Because this also has governance stuff in it.
00:33:26 - Anthony Campolo
So it would have been around the same time.
00:33:32 - Anthony Campolo
I mean, I'd be curious to see, like, what is, I would, when I'm recommending any of these things to people, I would say...
00:33:44 - Anthony Campolo
Do you have, or have you used a wallet?
00:33:46 - Anthony Campolo
Do you want to figure out how to build apps with them?
00:33:49 - Anthony Campolo
Do you want to learn how to interact with them?
00:33:51 - Anthony Campolo
I mean, I know you're not trying to get into Web3 right now, but I know you're a naturally curious dude.
00:33:56 - Anthony Campolo
So I think that if you wanted to kind of check out what is
00:34:02 - Anthony Campolo
an interesting cryptocurrency project right now,
00:34:05 - Anthony Campolo
Dash is one that I'll point you to.
00:34:07 - Anthony Campolo
Also, I don't know if you know AJ from, oh, Jabber.
00:34:12 - Anthony Campolo
Yeah, so let me show what I did in the beginning.
00:34:19 - Anthony Campolo
So ultimately, so there's this thing called the Dash.
00:34:25 - Anthony Campolo
So there's this Dash client.
00:34:27 - Anthony Campolo
So what the Dash client does is it's connecting us to the Dash blockchain network and it's feeding information in.
00:34:39 - Anthony Campolo
This is like an API key.
00:34:41 - Anthony Campolo
This is something you wouldn't want to leak, something you wouldn't want to expose on the client.
00:34:45 - Anthony Campolo
So it has to be server side.
00:34:47 - Anthony Campolo
It's very, very important that this never, ever is client side.
00:34:52 - Anthony Campolo
So Express right now is managing that.
00:34:55 - Anthony Campolo
What I eventually want to do is have them run as serverless functions.
00:34:59 - Anthony Campolo
So this allegedly should be what I would want to do, where it's using a Vercel function.
00:35:09 - Anthony Campolo
And then this is using a Netlify function. Both of these hit weird snags due to some dependencies in the Dash library because
00:35:19 - Anthony Campolo
just with any of these platforms, it's guaranteed to break the first time.
00:35:23 - Anthony Campolo
Then you test it and you figure out where it breaks, and then you make a change, and sometimes you have to ask the deployment company what the heck's going on.
00:35:30 - Anthony Campolo
Because both of these things are AWS Lambda, but because Netlify built many conventions and Vercel built many conventions,
00:35:41 - Anthony Campolo
you arrive at two slightly different implementations of the same thing, which is kind of frustrating.
00:35:47 - Anthony Campolo
But the thing we're going to want more so is we're going to want these to run on edge functions.
00:35:53 - Anthony Campolo
So that's even more complicated because then it can't use a Node environment at all.
00:36:00 - Anthony Campolo
So I kind of punted on all that and I'm just using the Express server right now.
00:36:04 - Anthony Campolo
And the Express server is barely doing anything.
00:36:07 - Anthony Campolo
So all it's doing —
00:36:10 - Anthony Campolo
all it's doing is, you know, initialize the app, set your CORS thingy.
00:36:15 - Anthony Campolo
And then I have a route for name and then it's going to take whatever name you gave it.
00:36:21 - Anthony Campolo
So that's why when we're curling it, we are doing the —
00:36:27 - Anthony Campolo
let's see.
00:36:30 - Anthony Campolo
Basically like that.
00:36:38 - Anthony Campolo
So that's what I want.
00:36:45 - Anthony Campolo
Is this still on?
00:36:59 - Anthony Campolo
I broke something somewhere along the way, but
00:37:03 - Anthony Campolo
I guess you two are the same.
00:37:05 - Anthony Campolo
Yeah, for sure.
00:37:06 - Anthony Campolo
And that's a whole thing.
00:37:09 - Anthony Campolo
So anyway, when you curl name forward slash whatever.
00:37:13 - Anthony Campolo
Oh, I know why.
00:37:16 - Anthony Campolo
Okay, so this is our endpoint.
00:37:19 - Anthony Campolo
What it's doing —
00:37:21 - Anthony Campolo
is it's — these functions are kind of the most important thing of what's happening here, so it takes your identifier,
00:37:36 - Anthony Campolo
webdevtest.dash, and then that is the name that resolves because this is like how Ethereum has ENS.
00:37:48 - Anthony Campolo
You can have ajcwebdev.eth and then you can like send money to it or create websites based off of it.
00:38:00 - Anthony Campolo
It is connected to the actual web because it's, you know, there are domain names and it's DNS and all that kind of stuff.
00:38:06 - Anthony Campolo
But it doesn't entirely work with DNS out of the box in normal browsers, which in one sense is
00:38:18 - Anthony Campolo
you know, work for normal people, but it's also kind of fun because then you realize there's ways to build things with and without DNS, which is a strange thing.
00:38:31 - Anthony Campolo
Because if you're someone who went to a boot camp and just learned the basics, all this stuff, you didn't even learn DNS.
00:38:35 - Anthony Campolo
So DNS is the thing that was just going on in the background.
00:38:39 - Anthony Campolo
I don't do sales. I just want to — but Fuzzy, if you download Dash Wallet and post an address, I'll send you a bit to play with.
00:38:47 - Anthony Campolo
Yeah, no, you should definitely take him up on that.
00:38:49 - Anthony Campolo
This is how I would get people into this.
00:38:51 - Anthony Campolo
I would tell them to download a MetaMask wallet and just give me their address.
00:38:55 - Anthony Campolo
And then I would send them a Loopy Donut.
00:38:57 - Anthony Campolo
You all know what the Loopy Donut is.
00:38:59 - Anthony Campolo
It's my avatar now for over a year.
00:39:03 - Anthony Campolo
Because they're like five or ten bucks.
00:39:04 - Anthony Campolo
They're super, super cheap.
00:39:06 - Anthony Campolo
So I have like five on hand at any point in time.
00:39:09 - Anthony Campolo
And just give people —
00:39:13 - Anthony Campolo
it is not the web.
00:39:15 - Anthony Campolo
Well, it's not DNS, but there's the web that is also outside.
00:39:21 - Anthony Campolo
Like, is email the web?
00:39:25 - Anthony Campolo
Yeah, maybe, maybe not.
00:39:30 - Anthony Campolo
Or, you know, are mobile apps the web?
00:39:34 - Anthony Campolo
Yeah, I don't know.
00:39:35 - Anthony Campolo
I don't know if all those work exactly the same way.
00:39:38 - Anthony Campolo
IPFS is the really cool one, though, because IPFS
00:39:42 - Anthony Campolo
is not DNS, but it's very obviously the web.
00:39:45 - Anthony Campolo
It's just a different way to
00:39:48 - Anthony Campolo
access the web.
00:39:50 - Anthony Campolo
So, yeah.
00:39:52 - Anthony Campolo
I mean, even Tim Berners-Lee is all in on Web3.
00:39:56 - Anthony Campolo
He will never put it that way, but Tim Berners-Lee is building a rebranded Web3 project.
00:40:09 - Anthony Campolo
Father of the internet says we can't be locked in silos like Facebook and Twitter and YouTube.
00:40:17 - Anthony Campolo
This is the first thing, the first pitch I would make every interview I ever gave about Web3.
00:40:22 - Anthony Campolo
Then you can add Solid where you have user data where users get to share what the users want to share.
00:40:29 - Anthony Campolo
So you give the power back to the users away from the platform.
00:40:33 - Anthony Campolo
That was the second thing I would always say on every
00:40:35 - Anthony Campolo
interview I gave about Web3.
00:40:37 - Anthony Campolo
But you won't see the term Web3 anywhere on here because no one wants to use that term because
00:40:51 - Anthony Campolo
that's what people think now when they think of Web3.
00:40:54 - Anthony Campolo
So he's like,
00:40:56 - Anthony Campolo
no, I'm just going to build the thing that they're already building and call it something else.
00:41:10 - Anthony Campolo
Let me get my tabs back under control.
00:41:15 - Anthony Campolo
It's only with the Portal project.
00:41:25 - Anthony Campolo
I don't know what the Portal project is.
00:41:33 - Anthony Campolo
There's a lot of those.
00:41:34 - Anthony Campolo
I just know Portal, like the video game.
00:41:38 - Anthony Campolo
Yeah, he calls it Solid, which is also extremely confusing.
00:41:43 - Anthony Campolo
It's like, bro, that name is taken.
00:41:51 - Anthony Campolo
It's like cool tech, though.
00:41:52 - Anthony Campolo
It's a similar thing with Blue Sky.
00:41:54 - Anthony Campolo
Blue Sky is a Web3 kind of project, like innately, and makes the same pitch and has the same benefits.
00:42:06 - Anthony Campolo
And that worked out well for it, I think.
00:42:11 - Anthony Campolo
I don't care. Before, I renamed it a bunch of times.
00:42:13 - Anthony Campolo
It used to be Bitcoin or Blockchain, Not Bitcoin, and Web3, Not Blockchain.
00:42:20 - Anthony Campolo
Now we're going to come up with another name.
00:42:29 - Anthony Campolo
Yeah, so, yeah, that's interesting.
00:42:33 - Anthony Campolo
I'll be curious to see what that looks like when you actually do this, Ryan, because
00:42:43 - Anthony Campolo
I got a .eth one set up pretty good, and then things happened.
00:42:48 - Anthony Campolo
Mistakes were made.
00:42:50 - Anthony Campolo
And then I got some unstoppable domains that were pretty cool.
00:42:55 - Anthony Campolo
And then Cloudflare has the .xyz domains, which is really interesting.
00:43:01 - Anthony Campolo
So I have a whole bunch of crypto domains, but I never obviously implemented any of them.
00:43:20 - Anthony Campolo
It was registered as an identity.
00:43:28 - Anthony Campolo
Okay, this is what I'm looking for.
00:43:37 - Anthony Campolo
Given the DNS compatible nature, they're technically domain names to register under.
00:43:45 - Anthony Campolo
Okay, so this is in conflict with this.
00:43:48 - Anthony Campolo
Someone here is lying.
00:43:52 - Anthony Campolo
Unless they're like, it's compatible DNS.
00:43:54 - Anthony Campolo
They're technically domain names.
00:43:56 - Anthony Campolo
That doesn't mean you have a domain, though.
00:44:00 - Anthony Campolo
Because obviously, if you go to ajcwebdevtest.dash, nothing's going to happen, you know.
00:44:09 - Anthony Campolo
Download Brave.
00:44:13 - Anthony Campolo
Brave browser can do that kind of stuff automatically.
00:44:31 - Anthony Campolo
Okay, so it looks like this is the part I haven't gotten into yet, this stuff.
00:44:39 - Anthony Campolo
Oh, this is the thing, this is just what's generated for you, I think.
00:44:53 - Anthony Campolo
Yeah, I don't know.
00:44:57 - Anthony Campolo
Yeah, I would say in general, I think you need more docs about DPNS because it shows up throughout when you're using it.
00:45:08 - Anthony Campolo
And then you have this thing right here.
00:45:10 - Anthony Campolo
It's not really enough context, I don't think, especially if you're saying this is DNS compatible and then
00:45:21 - Anthony Campolo
do I need a text record?
00:45:22 - Anthony Campolo
Like, because when you do,
00:45:27 - Anthony Campolo
this was so complicated.
00:45:30 - Anthony Campolo
A lot of steps.
00:45:37 - Anthony Campolo
So you're doing stuff like this.
00:45:41 - Anthony Campolo
And then you have DNSSEC coming into it.
00:45:44 - Anthony Campolo
So you can add a text record.
00:45:47 - Anthony Campolo
This would be one way to do it.
00:45:58 - Anthony Campolo
And then I know with IPFS, do they have DNS link?
00:46:07 - Anthony Campolo
And this is going to be, I imagine, what you guys are doing is going to be more in line with ENS and the way ENS works.
00:46:15 - Anthony Campolo
Because IPFS is linking you to a whole file system.
00:46:19 - Anthony Campolo
Whereas ENS, you're just linking to an address on the blockchain at the end of the day.
00:46:26 - Anthony Campolo
I never really fully understood, though, how then you would also be able to grab an IPFS hash and store that on ENS.
00:46:50 - Anthony Campolo
Okay, not meant for today.
00:46:50 - Anthony Campolo
Okay, where was I?
00:46:51 - Anthony Campolo
I think I was
00:46:56 - Anthony Campolo
in Solid.
00:46:59 - Anthony Campolo
We still got Preact.
00:47:02 - Anthony Campolo
Let me save myself
00:47:03 - Anthony Campolo
the context switching.
00:47:17 - Anthony Campolo
It should work now.
00:47:20 - Anthony Campolo
Boom, boom, boom, React, yes.
00:47:23 - Anthony Campolo
And this one, no null or undefined.
00:47:34 - Anthony Campolo
Yeah.
00:47:35 - Anthony Campolo
Get out of here.
00:47:41 - Anthony Campolo
Why can't I close this?
00:47:43 - Anthony Campolo
There we go.
00:47:46 - Anthony Campolo
So Lit.
00:47:53 - Anthony Campolo
So that makes sense.
00:47:56 - Anthony Campolo
This was the last one I hadn't actually imported.
00:48:03 - Anthony Campolo
This might be it.
00:48:07 - Anthony Campolo
Okay, we're all going to get to find out together whether this works.
00:48:09 - Anthony Campolo
Isn't that exciting?
00:48:24 - Anthony Campolo
Yeah, this is the problem with Lit being the only framework that ChatGPT might have gotten wrong, since it's
00:48:40 - Anthony Campolo
Okay, I think, I think, I think I can figure this out.
00:48:46 - Anthony Campolo
Start by doing this.
00:49:06 - Anthony Campolo
That all goes above render.
00:49:39 - Anthony Campolo
Here's where there's something going on right here.
00:49:43 - Anthony Campolo
I got a feeling.
00:49:46 - Anthony Campolo
So let's stick with my element.
00:49:58 - Anthony Campolo
And then we're going to have two render functions for a second.
00:50:16 - Anthony Campolo
I need a slot.
00:50:19 - Anthony Campolo
Pretty sure I don't.
00:50:25 - Anthony Campolo
I'll need a button.
00:50:26 - Anthony Campolo
Don't need that.
00:51:00 - Anthony Campolo
Yikes, my click.
00:51:01 - Anthony Campolo
It's just throwing that function right in there.
00:51:07 - Anthony Campolo
This is still humming along.
00:51:16 - Anthony Campolo
Good.
00:51:20 - Anthony Campolo
Pretty close, pretty close, I think.
00:51:34 - Anthony Campolo
I don't need that.
00:51:35 - Anthony Campolo
I don't need the constructor at all.
00:51:39 - Anthony Campolo
I need a constructor just because.
00:51:43 - Anthony Campolo
This is why I don't know how class components work.
00:51:51 - Anthony Campolo
Yeah, the problem is because I had to mash the two components together in a way that I probably didn't need to.
00:52:01 - Anthony Campolo
That's right, so I can't do this.
00:52:08 - Anthony Campolo
So let's ChatGPT it up at this point.
00:52:16 - Anthony Campolo
This Lit component is only displaying the H1 and not the button for fetching the Dash.
00:52:35 - Anthony Campolo
It'd be something super obvious, I'm sure.
00:52:41 - Anthony Campolo
Probably only two of those.
00:52:54 - Anthony Campolo
This is a
00:52:58 - Anthony Campolo
JS file.
00:53:07 - Anthony Campolo
Oh, yeah, let's see what happens.
00:53:14 - Anthony Campolo
That's not good.
00:53:19 - Anthony Campolo
Ooh, I think that's the issue.
00:53:33 - Anthony Campolo
I just realized —
00:53:35 - Anthony Campolo
nope, no one's talking at me.
00:53:36 - Anthony Campolo
Let me fix my screen real estate a bit.
00:53:40 - Anthony Campolo
Oh, is that running two servers at once?
00:53:43 - Anthony Campolo
Oh, no, that's Lit.
00:53:44 - Anthony Campolo
This is Preact.
00:53:51 - Anthony Campolo
I'm probably going to have to hop off fairly soon.
00:53:55 - Anthony Campolo
Let's see if I can get this last one working.
00:54:36 - Anthony Campolo
Let me first, before I go down too deep with this, I'm going to do a couple sanity things.
00:55:03 - Anthony Campolo
I'm just deleting all extra pnpm locks and node_modules.
00:55:10 - Anthony Campolo
Because I'm not sure if Lit keeps up with all the hot new — sometimes pnpm, like, Edge doesn't really support pnpm which makes me very sad, but sometimes it's good to check.
00:55:32 - Anthony Campolo
Okay, great.
00:55:33 - Anthony Campolo
This will take five hours to empty.
00:55:42 - Anthony Campolo
Let's see, I probably got changes to commit.
00:55:46 - Anthony Campolo
Yep, notes, notes, form good, notes.
00:55:53 - Anthony Campolo
And then this travesty.
00:55:57 - Anthony Campolo
Maybe I should just be doing that.
00:56:06 - Anthony Campolo
So start by installing and then run the server.
00:56:11 - Anthony Campolo
This will take a little bit longer because npm is slow.
00:56:24 - Anthony Campolo
Okay, so I'm gonna commit all this.
00:56:31 - Anthony Campolo
Yeah, yeah.
00:56:58 - Anthony Campolo
And then this will be npm run serve.
00:57:06 - Anthony Campolo
Let's see what happens with this.
00:57:25 - Anthony Campolo
James Doe.
00:57:26 - Anthony Campolo
What's up, James Doe?
00:57:30 - Anthony Campolo
Yeah, so you notice how the fact that this is a different error at all tells you that something funky is going on.
00:57:37 - Anthony Campolo
And this makes sense because we're talking about dependencies and monorepos and stuff always gets dicey.
00:57:49 - Anthony Campolo
This might be it.
00:57:54 - Anthony Campolo
So if JavaScript decorators aren't supported,
00:58:01 - Anthony Campolo
what does that mean for Lit?
00:58:04 - Anthony Campolo
And ChatGPT, you're writing me out of date.
00:58:07 - Anthony Campolo
I thought, is this using the platform?
00:58:09 - Anthony Campolo
Shouldn't it never break?
00:58:11 - Anthony Campolo
If it's using the platform.
00:58:23 - Anthony Campolo
Here's my current component.
00:58:26 - Anthony Campolo
I switched to npm.
00:58:31 - Anthony Campolo
But this might be an issue as well.
00:58:33 - Anthony Campolo
Let's see.
00:58:37 - Anthony Campolo
Oh, that should be okay.
00:58:45 - Anthony Campolo
It's telling me, and in this example, I'll make sure ChatGPT knows what I'm asking it, so I'm going to feed it
00:59:03 - Anthony Campolo
probably more information than it necessarily needs, but it's good to give it more than too little.
00:59:13 - Anthony Campolo
But if you just give it all your stuff and junk,
00:59:18 - Anthony Campolo
they'll be like, okay, I can see all your code.
00:59:20 - Anthony Campolo
I know how to fix this because I'm a godlike robot.
00:59:23 - Anthony Campolo
Okay.
00:59:33 - Anthony Campolo
Here's my package.json.
00:59:38 - Anthony Campolo
Here is my main.js file.
00:59:52 - Anthony Campolo
Should probably just delete stuff.
01:00:12 - Anthony Campolo
Let me go back to
01:00:16 - Anthony Campolo
this. What was the original thing.
01:00:56 - Anthony Campolo
That's where you're wrong.
01:00:58 - Anthony Campolo
So we went through all these examples, right?
01:01:01 - Anthony Campolo
So I had a Preact example, a Solid example, a Svelte example, and a Vue example.
01:01:07 - Anthony Campolo
All of those were written by ChatGPT and worked on the first try.
01:01:11 - Anthony Campolo
So it's only once we got to this one obscure older framework that was using all this stuff.
01:01:19 - Anthony Campolo
Yeah.
01:01:20 - Anthony Campolo
Thanks for hanging out.
01:01:42 - Anthony Campolo
Too many windows.
01:01:49 - Anthony Campolo
Let's just do this.
01:02:13 - Anthony Campolo
Oh, they are supported in TypeScript.
01:02:14 - Anthony Campolo
Interesting.
01:02:20 - Anthony Campolo
Oh, God, I already hate this.
01:02:25 - Anthony Campolo
Yeah, no.
01:02:31 - Anthony Campolo
Okay, that was easy.
01:02:36 - Anthony Campolo
No one's going to ask you for Lit.
01:02:37 - Anthony Campolo
So I mostly just want to do that so I can kind of learn how to use it a little bit because I've never used Lit before.
01:02:41 - Anthony Campolo
It was pretty much what I expected.
01:02:43 - Anthony Campolo
Enhance would be a better one.
01:02:46 - Anthony Campolo
Okay, I got to hop off.
01:02:49 - Anthony Campolo
This was super fun.
01:02:50 - Anthony Campolo
I will be back sometime next week.
01:02:51 - Anthony Campolo
Find out later.
01:02:55 - Anthony Campolo
Thanks, everyone, for watching.
01:02:57 - Anthony Campolo
Bye.