TRANSCRIPTEnglish

7 NEW Convex Components

11m 41s2,152 words309 segmentsEnglish

FULL TRANSCRIPT

0:00

Back in December, which feels like a

0:02

thousand years ago at this point, uh we

0:04

announced that Convex components were

0:06

now ready for you guys to build. And to

0:08

celebrate, we announced the component

0:10

authoring challenge. It's a competition

0:13

challenge, whatever you want to call it,

0:15

to uh win some swag, a gift card, and

0:18

most importantly, get featured on the

0:19

Convex component directory. Well, in

0:22

this video, I'm excited to go through

0:23

with you the first set of winners and a

0:26

couple of extra bonus ones. We've got

0:28

components for firecrawl, durable

0:31

agents, debouncing, nano banana, convex

0:34

fs, transload it, and loops. And the

0:37

great thing about it is that the com the

0:38

challenge is still going on. So if you

0:40

have a great idea for a component you

0:42

would like to see built, then follow the

0:44

link down below. But enough jibjab. Grab

0:46

yourself a lovely cup of tea and let's

0:48

get on with it. Now, just before we jump

0:51

into it, I should probably also quickly

0:54

explain what convex components are if

0:56

you're new to convex and not familiar

0:57

with them. So, you can think of them as

0:59

like little self-contained convex apps

1:01

that fit inside your own convex app.

1:04

They have their own database, function,

1:06

scheduler, storage, etc. And you can

1:09

only interact with them by calling uh

1:11

into them. You cannot uh they cannot

1:14

call out. So, it means that they're nice

1:15

and isolated like that. Oh, and yes,

1:18

components can have their own

1:20

components. So, you can build up

1:21

hierarchies of components like this. So,

1:24

until very recently, basically all of

1:26

the components that were built were

1:27

built by the team at Convex. Things such

1:30

as a rate limiter, aggregates, workpool.

1:34

Um, but then since the authoring

1:35

challenge, we've started to see more and

1:37

more components that are built by third

1:38

parties. uh such as our first component

1:42

which is

1:45

firecall scrape is a convex interface

1:47

into the awesome firecrawl service uh

1:50

which lets you scrape any URL for HTML

1:53

markdown links JSON and things like

1:54

that. [music] So we can take a look at

1:56

the demo here that comes nicely with the

1:58

component. I can give a URL like this

2:00

one for my blog uh this portio Christmas

2:02

cruise one and I can say that I'm

2:04

interested in the markdown and images

2:06

from the site and then I can click

2:07

scrape. [music] Then in just a couple of

2:09

seconds, I have all the text for my post

2:11

as marked down and then all the images

2:13

on this extra tab here. I think this is

2:16

going to be super useful for you guys

2:17

that are building agents like basically

2:19

everybody else out there at the moment.

2:21

And the component is also not just a

2:23

simple wrapper around the fire call API.

2:25

Um, like any really good comics

2:27

component, it actually enhances the API.

2:30

So it also offers durable caching. So if

2:33

you hit the same URL twice, it's going

2:35

to return the cache result uh which is

2:37

going to save you obviously API tokens

2:39

[music] and is also going to result in

2:41

increased performance. It also has

2:43

reactive status updates, different

2:45

output performance, JSON extraction and

2:48

so on. So if you think this is something

2:50

you could use, then check it out uh with

2:51

the links down below and make sure you

2:53

give the author GitMax uh on X big

2:57

thanks for his hard work.

3:00

Right. Next up, we have durable agents.

3:02

So, the SIGF freed the components author

3:05

says that the goal of the component is

3:07

to make a simpler version of the agent

3:09

component, which is the one that's built

3:11

by the Convex team and the one that I

3:13

personally have used quite extensively

3:14

in the past. Now, I can totally

3:17

understand why he wanted a simpler

3:18

version of this. Um, the ConX age

3:21

component is a bit of a powerful beast,

3:23

[music] but anyways, let's take a look

3:24

at this one. So you can define your

3:26

agent up here and give it some tools

3:29

which is very nice. And then down here

3:32

you can export everything you need to

3:34

run it uh with this very simple single

3:38

function define agent API. Then on the

3:40

client it even has this handydandy React

3:42

hook which lets you interact with the

3:44

agent which is very nice. Now, I don't

3:47

think I'm going to go any deeper with

3:48

this one just at this point. As Sigfree

3:51

mentions that this is still an early

3:52

development, but I'm keen to see where

3:54

he takes it. Um, if you try it out, let

3:56

me know down below what you think about

3:58

it.

4:00

All right, next up we have Convex

4:02

debouncer. It's the type of component

4:04

that I personally really love. It's

4:07

simple, small, and it has a piece of

4:09

functionality that most projects are

4:11

going to need and is kind of errorprone

4:13

to build if you're going to build this

4:14

yourself. [music] So suppose you have an

4:16

application that causes some data to

4:19

change frequently such as a text field

4:21

the [music] user can enter into. Um now

4:23

imagine you have an expensive process

4:25

that you want to run after every time

4:27

that this data changes. [music]

4:29

Now let's say that this data changes 10

4:32

times a second very very frequently. Now

4:34

you don't want to run that expensive

4:36

thing 10 times a second. Instead you

4:38

want to debounce it so you can limit the

4:40

number of time that it runs. So, it has

4:42

a few different uh modes that you can

4:44

put it into. So, sliding where each

4:46

keystroke resets the 1.5 seconds timer

4:49

and it only executes after you stop

4:51

typing. Then we have fixed which is

4:55

where the timer starts on the first edit

4:58

and then stays fixed. So, subsequent

5:00

edits update the args but don't extend

5:03

the time for the timer. And then eager.

5:06

So, the first message triggers an

5:08

immediate response, whereas rapid

5:10

follow-up um messages ceue up in a

5:12

trailing call. Now, I would say it's

5:15

probably still a good idea to do some

5:17

client side ID bouncing yourself um just

5:20

to save on hitting the convex server

5:22

unnecessarily causing you extra, you

5:24

know, API calls against your limits. But

5:26

I would definitely say this is a very

5:28

useful tool to have in your vibe coding

5:30

tool chest. And it also feels to me like

5:33

it is very similar to the rate limiter

5:36

component which I very much love.

5:39

Fantastic work Ilia on this one. Big

5:40

props to you mate.

5:43

All right, we all know and love Nano

5:45

Banana, the incredible text to image

5:48

model from Google. I've personally used

5:50

it on so many projects at this point.

5:53

Well, now there is a dedicated convex

5:56

component that allows you to interact

5:57

with it. And much like with the fire

5:59

core component, this one from Daniel

6:02

perusia

6:04

wraps the official API and adds some

6:07

nice stuff on top of it such as uh the

6:10

storage of the generated images and some

6:12

real-time status updates. Um, which is

6:14

very, very cool. Nice work, Daniel.

6:19

Now, I should probably do a full video

6:21

on this one, not just because it's a

6:23

component that's been created by our one

6:25

and only Jamie, the CEO of Convex, but

6:27

also because of how cool it actually is.

6:30

Convex's in-built file storage is

6:33

famously

6:34

okay. It's nice that it's built into

6:37

Convex, but it's definitely kind of

6:39

lacking in some ways. You see, the files

6:42

are stored when you upload them into S3,

6:45

but there's no CDN in front of them. So

6:48

if you are on the other side of the

6:49

planet like I am uh then it's not

6:52

sometimes as great an experience as it

6:54

could be. Also the cost is not as

6:56

competitive as it could be with other

6:58

options out there. Now there have been

7:00

other components in the past such as the

7:02

CloudFare R2 component that attempts to

7:04

solve this by storing the files on R2

7:06

and serving them through Cloudflare. But

7:09

ComX FS takes this idea and then takes

7:12

it up to the next level. It works by

7:14

uploading the files to a service that I

7:17

actually haven't heard of before, which

7:19

is bunny.net, but apparently is a very

7:22

popular CDN network and other MISK cloud

7:26

services company that offers offers very

7:29

competitive pricing. But anyways, once

7:31

you've um followed a few of the setup

7:34

instructions on the very nice comics FS

7:36

docs and you have a bunny bucket, then

7:38

you're basically good to go. You can

7:40

upload files, then begin serving them as

7:43

the example that ships with the

7:44

component shows you. And like all really

7:47

good components, it takes care of that

7:49

hard stuff for you. Stuff that you

7:51

wouldn't necessarily think about when

7:53

you're if you were to do this yourself

7:54

or you were to vibe it out. Things like

7:57

guaranteeing transa transactionality

7:59

when modifying files. You see that

8:02

although mutations are transactional uh

8:05

and that's one of the best things about

8:07

convex we all love actions are not. So

8:10

that means when you're dealing with a

8:12

third party service like bony.net it

8:15

means you're going to have to use

8:16

actions to be able to interact with it

8:18

which means you have to be very careful

8:20

about the operations that you want to

8:22

perform on that third party service.

8:24

They they also need to be transactional.

8:27

That's why Jamie, the author of the

8:28

component, has put so much thought into

8:31

having good guarantees around the

8:32

transactionality

8:34

of uh this component, ensuring that you

8:36

don't get any data loss or race

8:37

conditions or any annoying issues like

8:39

that. But anyways, as I said, I really

8:41

should do a whole video on this uh

8:44

component. But for now, I'm just going

8:45

to leave it here and say that if you're

8:47

looking to do lots of stuff with images

8:49

on convex, then you definitely might

8:51

want to check out this component.

8:55

I have to admit that Transloader is

8:57

another one of those companies I hadn't

8:58

heard of. I'm learning a lot of things

9:00

today. Um, but it also seems very very

9:03

cool. So, much like with Bone.net, you

9:06

can upload images, but you can also

9:08

upload videos, sounds, or whatever. They

9:10

call these assemblies and have them

9:12

processed and delivered to you. And like

9:15

most of the components we looked at in

9:16

this video, they also take care of a

9:19

bunch of the grunt work for you by

9:21

wrapping the the API and then also

9:24

keeping track of the statuses and

9:26

assemblies and whatnot. So big thanks to

9:28

Transit for this awesome component.

9:32

And last but not least, we have loops

9:34

component. So, I'm always on the lookout

9:37

for a new email sending solution

9:39

because, as I have ranted about time and

9:42

time again in the past, I think that the

9:44

email sending business is just an

9:45

absolute joke. The prices that some of

9:48

these guys are charging for sending

9:50

emails is just crazy. And they also make

9:53

it so complicated and frustrating to

9:55

use. So, this component leverages loops.

10:00

ides a really nice looking clean

10:03

alternative to one of those old email

10:05

dinosaurs. You can set up subscriber

10:08

lists, create campaigns, send

10:10

transaction emails, um all for a very

10:13

attractive looking price and even free

10:16

transactional emails, which is just

10:20

I think it's a really nice option if you

10:22

are looking to do email sending from

10:24

your application and you want to have

10:27

email campaigns or even just

10:29

transactional emails. I think you should

10:30

definitely check it out. Massive thanks

10:32

to Dev with Bobby for this component.

10:37

Okay, this one is just a bit of a bonus

10:39

gravel kind of one. I want to just

10:41

mention that there are now four

10:42

different options for doing pon uh

10:44

payments with components on convex. We

10:47

have Dodo, Polar, Autumn, and Stripe.

10:51

Now, I'm not going to go into the

10:52

strengths and weaknesses of each of

10:53

these in this video, but if you'd like

10:55

to see me do a dedicated video on

10:57

payments on Convex, then you know what

11:00

to do. I do just want to let you know

11:02

though, if you are wanting to add

11:04

payments to your app, then maybe you

11:06

want to just ask your agent to have a

11:07

look at these different options and work

11:08

out which one's best for you. All right,

11:11

well then I think I'll just leave it

11:12

there for now. Um, there's a bunch of

11:14

new components that I could have talked

11:15

about as well and more being added

11:17

daily, but in the interest of time, I

11:19

think I'll just save those for another

11:21

video for now. I hope you enjoyed this

11:23

one, and if you did, I would love it if

11:25

you leave me a like and sub. And until

11:27

next time, thanks for watching. Cheerio.

11:32

Guaranteeing transa transactionality.

11:34

How you can have good guarantees around

11:36

the transactional traction.

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.