TRANSCRIPTEnglish

This is the only AI I want to use

12m 51s2,850 words386 segmentsEnglish

FULL TRANSCRIPT

0:00

This is some code for SolidJS. Now,

0:02

notice I'm using signals incorrect. I

0:04

should be using the show component. We

0:06

wait for the LLM. And boom, we have the

0:08

show component. So, what you just saw is

0:10

a little project I call 99. And the

0:13

reason why I haven't kind of been

0:15

pursuing 99 is because I don't really

0:18

feel like I fit in today's kind of

0:20

modern world of AI. And let me explain

0:22

that. On one side, you have the no AI

0:24

side. I've always kind of been

0:26

interested in AI since day one. I've

0:28

played around with it. have saw a lot of

0:29

the sharp edges. I highly still

0:31

recommend to people that if you're

0:32

building production apps, you should be

0:34

just knowing and understanding every

0:36

single line of code you produce. Uh be

0:38

very careful. Please don't vibe code

0:40

production apps that especially that

0:41

take people's information out there.

0:43

Okay, it's going to end oh you know

0:44

horribly. And then on the other side you

0:46

have obviously the vibe coders, the

0:48

people that are out there just producing

0:49

raw code and who knows what kind of the

0:51

consequences or problems that actually

0:52

exist in between there. I obviously like

0:54

programming. Okay, I enjoy the actual

0:57

raw activity. I know there's people out

0:59

there like, "Ah, it turns out

1:00

programming was never the thing I

1:02

liked." No, programming is in fact the

1:04

thing I like. But more importantly, I'm

1:06

actually a pretty terrible reviewer.

1:08

When I actually am reviewing other

1:09

people's code, I am not that good at

1:11

seeing the problems and all that. It

1:13

takes me a long time to really review

1:15

the code. So, when an AI generates a

1:17

bunch of code, like a single piece of

1:19

code that would have taken me, say, 15,

1:21

20 minutes to write takes me maybe like

1:23

an, you know, a half an hour to review.

1:25

That's not obviously always the case,

1:26

but I I've never just been a strong

1:28

reviewer. And maybe that's a skill I

1:30

need to get better. And so I've always

1:31

kind of just lived in this world where

1:33

okay, well, I don't recognize and I

1:34

don't really identify with the no AI

1:37

people, but I'm certainly not a v viber.

1:39

So what should I be? And for a long

1:41

time, I was kind of this autocomplete

1:43

and that's it person. Like I loved tab.

1:45

Cursor tab I'd argue is one of the best

1:47

in the game. Okay. Uh game recognizes

1:49

game. That thing is actually incredible

1:51

what they have built. Huge fan of Super

1:53

Maven and everything that they have

1:54

done. But I've always wanted more,

1:56

right? Like, how do I take advantage of

1:58

all of this super fast generation of

2:00

code? But how do I make it do it the way

2:02

I want to do it? Is there a middle

2:04

ground that's somewhere between the tab

2:06

world and the vibe world? I think I may

2:09

have created it. That little example you

2:11

saw at the beginning was called 99. It

2:13

is my attempt at really trying to create

2:16

an experience programming that takes

2:18

advantage of AI but still puts me first

2:21

in the driver's seat because I have this

2:23

thing called lack of skill issues when

2:24

it comes to programming. I can actually

2:26

program. I have talent and and stuff

2:28

built up for many decades at this point.

2:30

So that means I kind of know what right

2:33

generally looks like and I'm can direct

2:35

an AI really fast if I can direct it in

2:38

a very fine grain way. So let me give

2:39

you a couple kind of like little

2:41

examples of what's going on. So, one of

2:42

the first things I can do is I can just

2:44

take this entire thing right here, which

2:46

is just a Cloudflare worker, and I can

2:48

just say, "Hey, convert uh this

2:50

Cloudflare worker to Hono." And notice

2:53

that it highlighted Cloudflare right

2:54

there. It identified on my machine I

2:56

have a skill called Cloudflare. So, it's

2:59

actually going to go through and make

3:00

sure that it actually uses all the

3:02

information about Cloudflare and then

3:04

convert it to a Hono worker. You can

3:06

even see right here, this is its

3:07

internal dialogue or whatever you call

3:09

that. I'll convert this Cloudflare

3:10

worker to use Hono. Let me write the

3:12

converted code to a temp file. All

3:13

right, there you go. We've converted it

3:15

all. Uh, is this good? Is this bad? I'd

3:17

have to review it, but you can see that

3:19

I can do a really large change to the

3:21

code base pretty easily. But this is

3:23

where I think it's actually a lot more

3:24

interesting. Let's say that I have

3:26

something called a game container, which

3:29

I do in this situation. It's Vim Royale,

3:31

and I want to be able to create a

3:33

matchmaking server. And I want this

3:34

server to be kind of like a stateless

3:36

one. One that I don't actually have to

3:37

have say a running durable object, but

3:40

instead I use D1 the database offering

3:42

as a means to do this. No, this is not a

3:44

sponsored post. This is not any of that

3:46

crap. This is me just trying out various

3:48

Cloudflare utilities. All right, so the

3:50

first thing I need to do is actually

3:51

create like a N variable. So I'll create

3:53

a m a matchmaking interface. jump in

3:55

here, take that and just go uh

3:57

Cloudflare end with D1, which is the

4:00

database uh the Jawat uh session. Let's

4:04

see. End um the game container. There we

4:07

go. Write those things out. It's

4:08

creating me a nice little end. Then I

4:10

can go export async uh function. What is

4:14

it? What are we going to call this? Get

4:15

game. We can have the ID as a string.

4:17

And then we can do a promise uh promise

4:20

game state. Now, notice that it's

4:22

actually going over there and it's

4:23

actually creating the stuff for me. So I

4:25

don't have to worry about that. Here I

4:26

can just be like return game state from

4:29

a games table. Uh using Cloudflare.

4:31

Notice I keep saying the word Cloudflare

4:33

because again I just wanted to use my

4:34

rules around it. It highlights it nicely

4:36

for me. There we go. Using Cloudflare.

4:38

Then I can go export a sync function set

4:41

game state uh GS game state and then hit

4:45

it with a promise void and then there we

4:47

go. So this is kind of what I really

4:48

would like uh using Cloudflare store

4:51

game. There we go. uh export async uh

4:55

function get all games. And so this one

4:58

right here should probably return a

5:00

promise. Oh, we should not call it all

5:01

games. Get um get uh joinable, right?

5:05

Joinable games, right? That makes way

5:07

more sense. And that should probably be

5:08

a game state with an array. All right,

5:10

so there we go. Game state with the

5:12

array. Jump in here and I can go like

5:14

this. Get games that are in a nit or

5:17

matchmaking uh for Cloudflare D1. Boom.

5:21

There we go. And now you kind of get

5:23

this idea. Like I've never actually used

5:24

a D1 in my life. I h I don't even know

5:27

what underlying database D1 uses. I just

5:30

know that D1 exists. I don't know how to

5:32

specify it. I don't know how to import

5:33

it. I don't know nothing. But yet right

5:35

here, I was able to grab all that

5:37

information. Get this bad boy right

5:39

here. Even though KV namespace is not

5:40

quite the right thing. It should be a

5:42

string, you idiot. And then of course I

5:43

can do something like this. I can do a

5:45

little get game right here. It's going

5:46

to go in. It's going to get the game.

5:47

It's going to do a little selection

5:48

right here. Pretty fantastic. Beautiful.

5:51

I don't, you know, would I throw an

5:52

error? Probably wouldn't throw an error.

5:54

Probably find a better way to do take

5:55

care of this. Set game state. This all

5:57

looks really, really good. This is

5:59

exactly what we're talking about. Get

6:01

joinable games. We're going to have to

6:02

do a select ID from where in initialized

6:04

or matchmaking. This is exactly kind of

6:06

how I would do this. The only big

6:08

difference I would make is this right

6:09

here. I'd much rather actually use the

6:11

game, the server game states as opposed

6:13

to just simply like raw dogging it right

6:16

in there. All right, let me create two

6:17

last functions and we'll have kind of

6:18

matchmaking done. I'll do a little

6:20

export async function. Uh create new

6:23

game. Actually, we don't want to export

6:24

this one. This one's only for us. Okay.

6:26

Uh and this should probably return a

6:28

promise of a game state. And we can go

6:31

like this. Just uh create game to create

6:34

a new game and return out the game state

6:37

after saving it to the uh D1 uh

6:40

CloudFlare. Boom. Nice. Async export

6:44

async function. Um, join game returns a

6:48

promise of a game state. Nice. That's

6:51

going to be right in here and go like

6:53

this. I had to kind of specify this one.

6:54

Uh, join the highest player count uh

6:58

server with matchmaking as the uh state.

7:01

Two, wait for a game server with state

7:05

of matchmaking.

7:08

Uh, three, create a new game if one and

7:11

two cannot happen. Cloud flare. Boom.

7:14

Tag it with that scale. And there you

7:15

go. So, as you can see right here, we're

7:16

creating the environment right here.

7:18

We're doing this bad boy right here.

7:20

Okay, we have this nice little set game

7:21

state right there. Perfect. And then we

7:23

can join the game right afterwards. Wait

7:25

naturally for what happened there. All

7:27

right. And this code right here, as you

7:28

can see, very weird numbering system. A

7:31

little 1 2 1 2 3 classic 1 2 1 2 3. So,

7:35

this is my ideal version currently of

7:37

AI. Uh, it just it kind of gives me that

7:40

control that I want where I'm also

7:42

having the speed, right? I'm determining

7:44

kind of the API how things should be

7:45

called. I can see kind of the building

7:47

blocks. Okay, I want like a a get and

7:49

set game. Then I want to be able to get

7:50

joinable games. I want to be able to

7:52

create new games. And then I want to be

7:53

able to join games. So I can kind of

7:54

like structure the code how I want. And

7:56

then I can actually have it generating

7:58

as I'm kind of structuring the code how

8:00

I want. Then I can kind of go back

8:01

through and fix little each little

8:03

piece. It just feels faster because

8:05

instead of being handed this just giant

8:07

diff of code, instead I'm just

8:09

generating one chunk at a time precisely

8:12

the chunk that I want to be generated.

8:14

Then I can also add these kind of

8:15

skills. I don't even know why they call

8:17

them skills. I'm not really sure what it

8:18

is. I'm not even sure if it really is a

8:20

skills. Okay. Uh let's go. Personal

8:23

skills. Skills. Cloudflare. This one.

8:26

This is really just me saying, "Hey,

8:28

this is how I want things to be

8:29

formatted. This is how I expect you to

8:32

be able to do things. I want you to be

8:34

able to create an env object every

8:35

single time. If you're going to be

8:37

creating uh anything to do with

8:39

configuration, I want you to specify it

8:41

this way. But at the end of the day, is

8:43

this the best AI? I mean, I think

8:44

there's a real world out there where uh

8:47

things are just going to continue to

8:48

improve and at one day people who hand

8:51

program will be the dinosaurs. Like

8:52

that's is this the time where people are

8:54

trans, you know, transferring from

8:56

handwritten machine code into compilers

8:58

and I'm over there like you boys are a

9:01

bunch of right? like, oh, is

9:02

that is that what's happening to me? I

9:04

actually can't tell. Will there still be

9:06

room for these type of tools, this

9:08

intermediate space that I'm talking

9:10

about? Will this actually be useful?

9:11

Maybe maybe people will really like

9:13

this. And maybe there does exist a world

9:15

for quite some time where people still

9:17

want to hand roll their code. Like me

9:19

personally, I'm just I'm just a bigger

9:21

fan. I like to know what's going on. And

9:23

perhaps that's an insecurity on my

9:25

behalf. I don't care what you guys have

9:26

to say, honestly. This is me just trying

9:29

to figure out and navigate this kind of

9:31

confusing world because at the end of

9:32

the day it is a weird rule. Like can you

9:35

fully trust a vibe coded app? Absolutely

9:37

not. Are people actually being able to

9:40

review 10,000 lines of code a day?

9:42

Absolutely not. When someone tells you

9:44

that they're lying to your face. And so

9:46

there's a lot of questions that I have

9:48

about this entire universe and how it's

9:50

going to look over the next couple

9:52

years. I think the next couple years are

9:54

going to be pretty dang complicated.

9:55

Anyways, if you want to give this thing

9:57

a shot, it's called uh 99 is what I

9:59

called it. We have uh some decent

10:00

contributions going. It's still pretty

10:02

kind of sharp edges. The skills thing is

10:04

just kind of landing on a separate

10:06

branch that I call skills version two

10:08

cuz I already had skills version one.

10:09

And I want to make still a bunch of

10:11

changes. Maybe I, you know, honestly, I

10:13

have a lot of thoughts about skills and

10:15

how they should be done. And I think

10:16

cursor actually got a lot of stuff right

10:18

really early on and I wish other people

10:19

would have followed their approach. But

10:21

nonetheless, this is me trying this is

10:22

me trying to make sense in a crazy world

10:25

that we have and still trying to really

10:27

understand actually programming and what

10:30

it's going to look like in 2026 2027. So

10:33

give it a try. Uh by the way, if you're

10:35

watching this video a little bit later

10:36

today, I'll be doing a live stream and

10:38

I'll be kind of fielding some requests

10:41

for various new features, what people

10:43

think should be done. I have some ideas

10:45

about debugging and semantic search that

10:47

I'd really like to add to the codebase,

10:49

but right now I'm just kind of focusing

10:51

first and foremost on just the uh

10:54

creation side of it. Can we get in code

10:56

generation? Anyways, I hope you enjoyed

10:58

this video. This really is my current

11:00

dream AI. Yes, I will never be as fast

11:03

as those people that just Dario take the

11:05

wheel the vibe coding. I hope you

11:06

enjoyed the video. Uh please leave a

11:08

comment and tell me like honestly real

11:10

talk is there room in this world for

11:12

this type of plugin? I don't know. May

11:14

maybe this is one of those things where

11:15

I'm the one being delusional. I think

11:18

that somehow I can maintain my own

11:20

agency in the world of agents doing all

11:23

the coding and I'm just kind of delaying

11:25

the inevitable. Or maybe I'm just trying

11:27

to make something fit that doesn't need

11:29

the fit. I honestly don't know and I

11:31

don't know if this plugin is going to be

11:32

great longterm, but it's just me trying

11:34

to make sense of the real world. And I'd

11:35

love to hear your thoughts on this. Do

11:37

you actually think there's a world where

11:39

this can thrive? But either way, this is

11:41

my ideal AI setup. And I hope you

11:44

enjoyed the video. The name is the 99

11:46

Agen. For those that don't know, I

11:48

actually named the library after this

11:50

right here, the Halo sniper rifle, the

11:52

SRS9.

11:54

Uh, and that's because I kind of looked

11:56

at the world and it kind of seems like

11:58

AI is like a shotgun. You're just

12:00

blasting everything. Not really a lot of

12:02

aim. Shoot from the hip. Whereas like a

12:04

sniper rif, you got to take it. You

12:05

know, you're actually thinking through

12:07

things. is you got one shot, one bullet,

12:09

one target. And it's a bit more of a

12:11

thoughtful kind of approach as opposed

12:12

to just like the spamming make anything

12:14

happen kind of approach, not the spray

12:16

and prey. So that's why it's called the

12:18

99.

12:21

Hey, do you want to learn how to code?

12:22

Do you want to become a better backend

12:24

engineer? Well, you got to check out

12:25

boot.dev. Now, I personally have made a

12:27

couple courses from them. I have live

12:29

walkthroughs free available on YouTube

12:31

of the whole course. Everything on

12:33

boot.dev you can go through for free.

12:35

But if you want the gamified experience,

12:37

the tracking of your learning and all

12:39

that, then you got to pay up the money.

12:40

But hey, go check them out. It's

12:42

awesome. Many content creators you know

12:44

and you like make courses there.

12:46

boot.dev/prime for 25% off.

UNLOCK MORE

Sign up free to access premium features

INTERACTIVE VIEWER

Watch the video with synced subtitles, adjustable overlay, and full playback control.

SIGN UP FREE TO UNLOCK

AI SUMMARY

Get an instant AI-generated summary of the video content, key points, and takeaways.

SIGN UP FREE TO UNLOCK

TRANSLATE

Translate the transcript to 100+ languages with one click. Download in any format.

SIGN UP FREE TO UNLOCK

MIND MAP

Visualize the transcript as an interactive mind map. Understand structure at a glance.

SIGN UP FREE TO UNLOCK

CHAT WITH TRANSCRIPT

Ask questions about the video content. Get answers powered by AI directly from the transcript.

SIGN UP FREE TO UNLOCK

GET MORE FROM YOUR TRANSCRIPTS

Sign up for free and unlock interactive viewer, AI summaries, translations, mind maps, and more. No credit card required.