Loading video player...
Hello. Hello. Okay, we're here for
episode two of Power Hour with some
special guests this week. We've got Dan
and Ricky. Oh, Ricky, we got to get your
name added on there.
>> Oh, yeah.
>> Oh, we can figure that out. Ricky, do
you want to introduce yourself?
>> Yeah. Yeah, sure. Hey guys, my name is
Ricky. I am a product engineer here at
Vzero. Um, we're shipping the great
stuff for you guys and want to let you
know.
>> Ricky's also sort of my desk mate that
though I don't really have a desk yet in
the new office, but de facto desk. Um,
and awesome. And we got Dan. You're Dan,
you're in New York. Yeah,
>> I'm in New York. And I'm shocked you
don't have a desk because
>> we apparently we just got like 10 times
more desks than we've ever had.
>> So many people in the office. I don't
have a dedicated one yet.
>> Claim one.
>> That's awesome. Um, Dan, you want to
introduce yourself and share a little
bit?
I'm Dan. I'm on the the product
marketing team here at uh Versail. Uh if
you've read one of our blogs, you may or
change blogs. Uh it may
[laughter]
>> it may have been something that I
contributed to. Uh but my job is really
to simplify all things Versail uh and
use our products so much that I can
understand them so that I can try to
make you uh understand and love and use
more of them. Um, and so that's our goal
today is to to try to go under the hood
or not under the hood, go on the actual
surface level of Vzero and see what we
can build.
>> That's awesome. Well, yeah, I think I
mean Dan, your your intro gave the intro
for why we were here. This is so we
tested Vzero Power Hour before
Christmas. It was so fun. We were
building like silly holiday things and
it was a blast. And then we were all
talking. We're like, let's actually show
how you build a real app with the Vzero
team fully with the VZero agent. And so
I think earlier this week we put out a
call to the community of what you want
to build. We got a lot of responses. Um
some very robust ideas of which I Dan
and Ricky might be upset with the one I
chose because it's not for the faint of
heart, but it's really going to show the
power of Ezero and Verscell. Um so we're
going to start building with that today,
but um before we get started, just a
little reminder to be friendly, follow
all the community standards in the chat.
Um we'll be managing it, so ask
questions. This really, as Dan said, is
about like we're going to be really
honest about like what it looks like to
build, the problems and questions we run
into, the wins we have. So, throw your
ideas in the chat. If you have a feature
you want to see to even more complicate
what we're going to build, throw it in
there and we'll try it out. Um, and if
you have any learnings that you don't
understand of what PZ is doing, add that
in there as well. Um, and we want to do
more of these. So, if if your curiosity
is sparked and you have something you
want to build, um, we'll get to it. Um,
but with that, I do have a little
surprise before I give you the prompt,
Dan. Um, for everyone joining us today,
we are going to have
a credit code for you to build with us.
So, I'm going to drop it right now. We
have not done this on a power hour yet.
Um,
>> this is the first, guys.
>> First, and I it might have to be a
standard now that I've done it.
>> It might have to be. [laughter]
>> Um, awesome. Okay, Amy, do you mind
dropping that in the community channel?
Awesome. Okay, cool. Okay, so Dan,
Ricky, y'all ready?
>> Indeed. Um, let's go.
>> Hope so. Okay, so the prompt or the
request for an app that we got is build
a productionready email inbox app using
Vzero and Verscell. Would like it to
demonstrate Vzero's ability to scaffold
full stack applications with real
authentication database and AI
integration. Basically, they want you to
be able to prompt AI drafts from an
email box and build it all within BZ and
Versell using AI gateway SDK. Y'all
think you can do it? I know I can,
>> you know, [laughter]
and I am now more confident because Rick
is confident. And [laughter]
>> one of the things we were talking about
before is I'm not before we we we
started was I'm not a Vzero expert. I'm
a user of Vzero. I just happen to use it
a lot. Um, and so Ricky thankfully
agreed to support me if there's anything
I should have been doing better or I
should have, you know, clicked this or
done something before something else.
Um, so if I stop prompts midway, it's
just because I'm learning. Um, and so
I'm not an expert. I think Ricky is
though. And so, um, that prompt sounds
good to me.
>> Okay, let's get going.
>> All right, cool.
>> Again, you want to share your screen?
>> Yeah,
>> no pressure. It's a very vulnerable
moment.
>> Yeah. No, this is uh this is it. This is
what we signed up for. Um, and so Ricky,
one thing that I'm thinking is like I
feel like if I were building an inbox
that had an off system and had like
database behind the scenes, like I
actually don't know if I would start
with off
>> because I kind of want to build towards
like what my database might look like
and what my users might look like. So I
I don't know. some some part of me is
feeling like I should build the inbox
first and then add complexity later on
by adding like okay let's add a database
let's add off um but would you do that
differently or am I cool to just start
in that direction
>> I think that's definitely the right way
to go right like there are a couple ways
that you can build apps you can think
about the design you can think about how
like what the product feels like or you
can think about the technicals of it I
think with v 0ero it's pretty easy to
start from either point to start with is
the product point of view because at the
end of the day like how are we
interacting with it? So I think you
should go from there
>> and it's already selected but for best
results Vzero max is definitely the way
to go.
>> I'm really glad you said that because I
was using Vzero with my dad and he was
really struggling to understand when to
use Max versus not. So do you default to
Max for everything?
>> I use Max for everything. If you can
afford the tokens and the the credit
consumption, use Max. Um it'll take a
little longer but the output quality is
a lot better. All right, I'm use I'm I'm
sold. I'm using Max. Um, and I love the
joke that Vzero Max is named after Vzero
Max lighter, who of course uh we all
love.
>> Max is the goat. [laughter]
>> All right, so I'm just going to prompt.
Um, I'm just going to go for building uh
like an actual inbox that first thing
comes to mind is like a sidebar with all
my messages, some ability to sort,
ability to click in, see any email. Um,
I guess when you click that it should
probably change the URL in case you like
refresh you're exactly where you were.
Um, and then later what we can do is we
can start to make it based on a database
and then from there make it real like um
maybe we won't get to the the actual
receiving of emails right now but I feel
like
>> that's episode three.
>> Yeah, that that's episode three and when
when I become a more advanced VZO user.
So, um I guess this is me f my my first
hands on a keyboard prompting in front
of an audience. Uh but let's build
um
I'm gonna change these even though I
normally wouldn't correct my spelling.
Um
>> we can handle it. It's okay. [laughter]
>> Yeah, I figured that the AI can handle a
little typo. Um,
>> I feel like I like furiously type into
it so fast and it
>> typically can parse through what I'm
saying.
>> You're doing good though, Dan. Whenever
I'm typing in front of people, I start
like [laughter]
>> uh emails received uh called my inbox.
Um also later on I think we should um
I'll classify some spam
>> spam folder. Um
I think let's have some placeholder
uh emails, but those can probably just
live in like a JSON file for now.
>> What do you mean by placeholder emails?
>> Yes. So, I want to populate it with
something so that the system is I feel
like it's a good idea to have real
emails at first rather than sort of
hard-coded divs.
>> What I mean by that is just like if it
just hardcoded a few fake emails in
there when I know eventually I'm going
to want like individual items that maybe
>> it'll just get me one step further so
later on don't have to replace those
with like, hey, start to add some fake
data. I'll just start with some fake
data.
>> Yeah. get the setup there.
>> Um, so some fake data.
>> That's actually that's a really good
tip. Oftent times I will ask Vzero to
like use fake data so that we don't run
into the issue where there's divs and
you have like the text inside of the
divs, but rather we passing something in
so that it's easier to modify later on.
>> Let's see. So, uh, recipients, I guess
there could be many. Um,
um, and I'm giving it quite a bit, but I
think, uh, Visax should be able to
handle the fact that I'm talking about
like sender and recipients. I think
it'll totally parse that. Um, and then
let's see if there's anything else with
all info you'd expect from email,
subject line,
and then and the full content of the
email.
Okay. One thing that I'm trying to
actually think ahead of time is
eventually we want to and you let me
know if I'm typing too much into my
first prompt, but so far I think I'm
okay. Eventually we want to um display
full um full emails, interactive HTML,
all the stuff you might expect in real.
Um,
so make the placeholder data pretty
complete. Um, and I think that should be
a good start. So I have my like
sidebars. I have my folders. Oh, the
only thing I'm missing is let's start
with that. Um, okay. And so again I'll I
didn't do the com the feature of
actually clicking into an email seeing
it in your inbox but I am trying to feed
it the underlying dummy data to support
an inbox
outbox which I called send and spam. Um
so so far I feel like I'm doing a good
job prompting in front of an audience.
>> We're gonna see soon. So, [laughter]
>> yeah.
You're doing great, Dan. We'll see.
[laughter]
>> That's what I need from you guys is the
emotional support, is the friendship, is
the someone to lean on and then Ricky to
of course be like, well, Dan, I wouldn't
do it that way. [laughter]
It's
>> an expert voice. Dan, I am curious. This
this might be you live stream Dan, but
you seem like a big out loud thinker.
When you're typically prompting Vzero,
do you spend a little bit of time
thinking to yourself? Do you write it?
Do you use somewhere else to prompt
together or is this just a an experience
we're getting right now?
>> No, I do a lot of the thinking into
oblivion sort of like [laughter]
way of thinking of what should I do? Uh
I don't know if I talk out if I speak it
out loud, but I do sort of like try to
think through in my head like I had
before of
>> should you start with the off and the
actual database integration
>> like I think about that stuff ahead of
time.
>> Yeah.
>> So like my first prompt I always feel is
very important. Sometimes I feed a
little too much information where I'm
like this is what the end state should
look like. Um,
so I I I definitely do like the internal
thinking of where should I start with
this? Like what's my current end state?
I think one of the crazy things about
Vive coding is your end state changes
>> like three seconds after that, right?
It's like, okay, now I want this. Um,
and so I don't know. I I don't think too
far ahead, but I try to get a good idea.
Yeah, Ricky, do you how do you process
it? And I'm curious. So, you said Dan,
for you it's mostly individual. Is it
more collaborative for you, Ricky? And
like on the team, do you all talk about
stuff before like this?
>> I don't think we won't really have the
conversations about products and
features while prompting or building on
Vzero. I think a lot of times when I'm
thinking about things that I'm doing,
I'm doing it solo or I've already taken
in the input from other people.
>> Yeah.
>> And then for me, that process, I'm like
a writer. Writing is how I like go
through the thought and make sure
everything's like fleshed out.
>> Very good at it.
>> And I appreciate that. Um so I'll just
do that like right in the prompt box. Um
and I'll just like figure it out. I'll
type delete like um enter a few times so
I can have like different blocks for
space and then go back make sure it's
coherent and then shoot it off.
>> That's cool. So you're making it like
your actual workspace while you're in
there. That's awesome.
>> Okay, Dan, what do we have? Okay, so one
of the things I noticed recently was
that this reviewing work thing and again
I'm not on the VZero team. This was like
my own assumption was that reviewing
work it gives you a preview of what
you've done and then reviewing work is
actually in like ensuring it's going to
function as you expected and then it can
continue.
>> Is that sort of accurate? Like I can
interact with this while it's reviewing
its work and then if there's a bug it'll
figure it out. Is that sort of
>> that's exactly correct, right? Like we
want the goal is to get you something
that you can interact with as soon as
possible and if something's wrong then
the agent will fix it. Um and then we
can iterate from there. But usability is
the name of the game. You know,
>> that was to me a huge ad because like
you get something very quickly and then
you can um keep it. You can start
playing with the existing ones so that
you can figure out what you want next.
And this so far
looks pretty awesome. I'm going to close
this sidebar so we get a full view. So,
we got my three folders. I'm curious
what the And like at this point, I I
really don't feel like I need to go to
the data, but I am actually curious like
how it set it up. Um I'm sure it gave it
like a a category. Um and so I'm just
going to refreshing.
>> You're skipping over that you won the
lottery Dan.
>> Um so, I'm just going to find the data.
So, um so basically it made me a full
app, which is cool. um next.jsbased
looks like it's using like all the cool
things that I would want it to do but
wouldn't know to do on my on my own. Uh
but yeah, it's giving me an idea of
actually what I would want to store in
the database later, which is which is
cool, right? Like for every single
email, you may have attachments. We'll
probably want some way of storing things
like zips, um like all the attachments.
Um and then it's taking these again. Did
it have a category? Oh, yeah. Folder,
inbox. Um so it's pretty cool. So, I now
have an idea of what's powering these,
which is pretty much what we asked for.
Um, there's some functionality that's
not yet in there. Like, this looks like
it's telling me it's unread, but when I
click it, it doesn't um
uh it's not automatically reading it.
So, like those are small things that
we'll eventually want to do. Um, but so
far, it's feeling pretty good. There's
also, and now that I'm looking at it,
like no ability to create a new email.
Um, which we can we can certainly do,
but I like where we are at now. Ricky,
any thoughts come to mind on
>> Yeah, there there are a couple things
that I think about, right? When you say
you click on the email and it's not
turning to like it's already read.
>> Yeah.
>> I would look at the data that the fake
data that we use and see if they're
passing in like a red or unread.
>> Yeah. Okay. So, there is one that weate.
Okay.
>> So, I'll start working on a new prompt
of like the things that I think we
should do while you tell me the other
things that um that caught your
attention.
>> Yeah. So, that's one of them, right? We
want to make sure that we have like a a
store, but that we can also change that
state on the front end. And so, it looks
like it's being passed in, but if you go
into like the components that actually
render the emails, it's likely the case
that we're not changing the state and
we're not actually editing the the email
data.
But that's also a bit expected because
we're not storing this anywhere real
yet. Um, and then I think another thing
I just want to call out, right? Like
that's a feature that wasn't there and
it wasn't requested, but we also took
the approach of making this an iterative
process. If you say like these are just
go build this and you build every single
thing, that's also another way I just
prefer. And so I I advise Dan to do it
this way. But um, that is still you can
still try to oneshot some pretty cool
things with Vzero.
>> Amazing. Okay, so we've got the red.
Any feature requests? Oh, by the way,
I'd love to take feature requests from
the audience. I think that was sort of
one of the main things is let's build
what everyone wants us to build. The
initial idea came from the audience, but
let's um let's build on top of that. Um
so what I did so far is I just prompted
to I think like a normal inbox doesn't
just say, "Hey, you clicked on it. Mark
has red." it like sit if you sit on it
for a second then it knows okay this
person actually probably can have this
email marked registered as red. The
other thing I'm noticing is this little
favor.
>> Wait, wait. Is that is that real? As
soon as I open m it's like it's going
>> Oh, I'm pretty sure there's like a small
I mean I'm sure everyone is different.
Uh but a small time this is a total um
or at least that's how I would want it
to work. I want I wouldn't want it to
just automatically mark as red if I went
boom boom.
Debatable preferences for everyone. Uh
but what we could also do is have a mark
as red and mark as unread button
depending on the current state. Um
so that will do mark as red. Um what are
the other features? Okay, favorite. So
let's see if this works. Okay, so
favorite it added that. I didn't have
that in my initial prompt. Um, favoring.
Let's make favoring work. So, I
star icon. It marks it as favorite.
Um,
also add a new folder of my favorites.
Anything that's favored.
So, I'm gonna give it a lot. Um, Ricky,
do you think you'll handle more than
this at once or should I should I go
with this and then we can brainstorm if
we want to add like a text uh gen like a
sending email functionality or what what
comes next?
>> Yeah. So, what we can also do is cue
prompts. So, we can send this one off
and then start thinking about the next
batch of things that we want to do.
>> That's a good call. So, should we Oh, go
for it.
>> No, I was just curious. I because I feel
like I cue prompts when I have more
ideas that come, but I never do it
strategically. Do you suggest if you
have different specific things that you
really want it focused on to go ahead
and cue them rather than batch them?
>> I I so I think when I think about
batching or queuing I think about what
is like the related context of things
that I'm working on, right?
>> So this was all like changing the state
or changing the data of what the emails
can do. We have like favorites, we have
read, unread, and then my like next
thing say we want to do like all right
AI summary. That's like another thing
that I would think about that I would
probably separate out
>> in the order of which I'm sending my
problems. Does that make sense?
>> Yep. That's very helpful for a brain
that has a lot of ideas and doesn't
always think in context.
>> Yeah. And that's a good point because I
I do Q messages too. And the reason I
was talking earlier about like I don't
know the end state of my vibe coded apps
because as you like sort of can if you
were writing a PRD like a product
requirements doc you're like okay here's
the things that come to mind before I
can visualize anything but you visualize
things within a few seconds and then you
see what else you want and then the end
state changes. Like there could be some
functionality that we create here that's
like email 4.0. Um, if we come up with
cool things and change the email game
forever, maybe we have a little startup
going on,
[laughter]
but like just let your creativity follow
and like so yeah, I then I'll type
things in before generation finishes.
Um, and then we didn't even get to one
um just now. Let's see where we're at.
So, I'm going to click into this email
and let's see if I can Okay, it waited a
few seconds, but it marked it as red.
market.
>> Okay. Okay.
Okay.
>> We're cooking, chat.
>> We are cooking. Look at us. Okay. And
the numbers up here are working, which
is pretty nice. So, if you mark it as
red, you'll see that like that number
one, right? So, so, so far it has a
pretty good understanding of my email
inbox. I think
>> um I feel like we can connect it to a
database and maybe put this behind off.
>> Is that
>> Yeah.
>> Okay. So, um right now it's all dummy
data.
I want to um integrate with some sort of
database to store the emails
as well as
um
have users authenticate.
Uh, of course, one of the main things
when users authenticate, they should
they should only be able to see
uh the
Oh, one more thing comes to mind. So,
something sent to them, something
they've sent,
and their specific um
status for each email. I'll explain what
I mean by that. Um so, when I favored
something, like imagine two people are
on the same email and they're both in
our uh our database. I don't want one
person to favorite or market as read and
have that affect the other person's,
right? So there needs to be some way of
having every email that's sent or
received in this system to sort of be
maybe it's like duplicated. Maybe it's
the same email but for each person and
which I think is actually how it works
in the real world. It's like one email
stored twice because it's technically
written to two different people. Um, and
then you just have your database sort of
like update each one of those rather
than maintaining like, hey, for this
email ID,
this person has favored it. Ricky, would
you get that specific or would you let
the data the the AI make the decision
for you? Like, am I going too deep into
telling it how to architect the emails
or are these questions you want to be
sort of thinking about? So I think like
as an engineer, right, that's a question
that I would think about and I've
actually like started thinking about it
while you were talking about it.
[laughter]
But I think the beauty of Ver is that
you don't need to,
>> right? Like if as long as you say, "Hey,
like I want these things to be specific
for each user and not be the state to be
shared,
>> they'll know what to do."
>> Okay. Um so let's do make decisions on
their inboxes without affecting anybody
else's inbox.
um even if it's for the same message.
So So again, what I'm really talking
about here is like I want to take
actions on this message being unread and
that not affecting
anybody else who is also CC. So anybody
else on the marketing team or uh Alex
Johnson uh which I'm assuming I'm Alex
Johnson. Oh no, I'm just Oh, it's this
is my inbox or
Okay, cool. Um, so that seems pretty
good. Um, should we just kick this off?
See see what we get. Um, anything else I
missed from the start? Right now it's
running on dummy data. Um, let's also
put the dummy data in the database
itself rather than local. Right? So, if
I'm adding a database, I want to like
sort of stop using the dummy data and
start populating that database. I think
that's pretty good start. You let me
know if I should stop this at any point,
[laughter] edit it, if I totally messed
up. Uh, but it feels pretty good.
All right. So, integrated database store
emails add off. I'm sure users can see
that. Okay. So, it looks like it's
choosing superbase. So, I'm going to go
ahead and install Superbase.
And I believe what it's going to do is
prompt me to get started. So, what I'm
going to do is so I don't have actually
uh permissions on this account, but all
I'm going to do is I'm going to go to my
own define account. So, this is my own
pro account. I'm just going to go to
Superbase and add one there. And so, uh
this is for sale marketplace. you have
different access on different teams, you
can go and install any products. So,
what I'm going to do is install
Superbase,
but on
this account
>> and if you're if you're showing the
enterprise marketplace, we still just
see the chat, but also voice over.
>> Can you see this?
>> We we just see the VZ chat. So,
>> Oh, crazy. Um, I'm glad you mentioned
that. Um, let me see what I need to do.
Oh, I see. Um,
>> sorry. So, basically I'm in marketplace.
Um, and I'm just setting up a database.
Um, hopefully I'm not at my uh free plan
limit. If I am, I'll just unpause. Um,
but this is like our email inbox. And I
guess at this point we're like pretty.
So,
>> oh, we're we're making email 4.0 right
now. [clears throat]
>> No, we're
>> cool.
>> It doesn't like my dot. Okay. 40.
Perfect. All right. So, I'm setting it
up. And then what I'm going to do is
because it wasn't connected to my Versel
one, I'm just going to um copy the
environment variables in. And so,
hopefully nobody steals them, but I'll
>> guess.
>> Yeah, you can you can take your screen
off for right now.
>> That's a good idea. So, what I'm going
to do now is basically all I did was and
I it's all I did, but it's not all the
system did is the system prompted me to
go create a Superbase uh database. I
went into Verscell Verscell marketplace.
It's where it linked me. I just changed
teams, but all I did was I I created a a
Superbase um database and Vzero will
have in my eyes. It will I'll be able to
tell it like, hey, I didn't set it up.
It it won't maybe know that it's
connected to the project, but I will
give it all the environment variables it
needs to start reading this and then
continue in the process. So, what I'm
going to do is just copy this uh
snippet. These are all my environment
variables. I'm going to go to
uh V0.
Hopefully, I go to the right tab.
If I can find the right tab.
Where did it go?
So many tabs.
Okay, we're still back. Um, and now I'm
just going to switch over to the other
screen share. Cool. Cool, cool, cool.
Can
>> you get the VO screen back up too? I'll
show you something cool that you could
do as well.
>> Here he comes. Vero expert coming in.
>> Cool. So, yeah, what would you do here?
So, now I have my Envars in Clipboard.
Um, what would you do?
>> So, there are two things, right? If you
want to use your invars, we can go to
the sidebar and we can click on the
varss and then we can add all the in
variables that we need. Right?
>> So, here's where I'm just I know I've
been going off off uh screen share, but
I'm just going to literally copy and
paste. Um so, I'm just going to do that
for two seconds, add my variables, and
we'll come right back. Um that way we
can keep it a little bit more secure,
right? you don't want to be sharing um
those envir with anybody else. Um and so
this
>> that's that's super important too like
at V0ero security
>> and so the whole way that we've built
and architected the app is to make sure
that we aren't things that aren't should
not be shared.
>> Yeah. So now this is a view I'm actually
comfortable with you guys seeing
>> which is uh my environment variables are
all in here but they're obiscated. you
can't see him unless unless my URL is
all dots. Um, and so that feels pretty
good. Um, was there anything else,
Ricky, that you would do beyond this uh
at this stage?
>> So, another option, right, like if you
know that you don't want to work with
Superbase or there's a specific database
type that you want to use before we
prompt, you can go to the connect tab on
the sidebar
>> and then you can add any integration
that you would like. So, we could have
used Neon here. We could have used
upstell
marketplace that you showed the users
earlier that you also have access to.
>> Amazing. So again, the only reason it's
still registering as connecting is
because I didn't have permissions on a
team. I guess that that that's a
security um policy that we have in
place, which is actually pretty good.
Like you don't want everyone on your
team to be able to go and create
anything they want and start, you know,
racking up bills or whatever. Do it to
people you trust. So you can set
different permissions for different
users and then they can um you know do
whatever because what happened here is I
made it for my own team. So now I'm
right and that's fine but that's that's
sort of in line with what you know my
team uh set me up to be allowed to do.
So I'm going to do skip and I think what
it's going to do or actually what I'm
going to do is I added the environment
variables myself.
So, we're all set with this Superbase
integration.
Continue building it out. And I think
that should be good. I'm going to press
enter and see where we get.
>> And so, you guys know as well too,
right, that Superbase thing is for like
enterprise users. There's like a whole
thing about being able to use
integrations. But if I on my personal
account were to do this like Dan said,
then I'd have no problem connecting
Superbase.
>> Okay. So, let's see. So, confirm. So,
now it's it knows that I sort of bypass
that. One of the things that's cool with
that is that I don't have to use Versell
Marketplace at all. [laughter]
I can bring my own B yodb bring your own
database [laughter]
up in my let's make a trend on Twitter.
Um uh and so I could have just brought
anything right I could have just said
hey here here's all the information that
I would need to set up with with a
superbase maybe I already have a
suitbase or I already have a suit based
database um this is to make it much
easier but you don't have to use it it's
not like this way or the highway you can
bring your own and then to your point I
could have said actually I don't want to
use I want to use neon um so now you
have all the context let me build out
the complete integration
feed it with uh dummy data
One of the things that's probably cool
at this point is if I um pull up let's
go to superbase for my define
integrations. I'm just going to go back
and forth between um for sale. So I'm
going to go to my last updated five
minutes ago. Go to my most recent one
which is email inbox and I'm just going
to go into this actual database. So what
we'll see is that it probably unless
it's already done it on the vzero side,
it probably has nothing. Yeah. So it's
just an empty database. And now Vzero is
going to help me figure out the
migrations required. Like basically like
how do I populate this? So I don't
actually need to know anything about
this database. But I can have some
visibility into it. I have full control.
It is a true database behind the scenes.
Um then if I go back to zero,
it's creating these two migrations. So
it's creating the tables themselves and
then it's going to feed my dummy data.
So the data that was in the JSON is
actually now going to populate those uh
that those tables that it's creating for
me
was doing quite a bit of thinking on
that one which
>> and and just for the the approachability
of everyone building I rarely ever click
into the database actually like in the
interface unless there's an error and
then I can just go easily fix it but I
feel like I'm only talking to Vzero
about it and it's all in the background.
I don't think I've ever once actually
clicked and looked up. [laughter] Yeah.
Yeah.
>> Dan's just taking it a step step above.
You might actually be the B expert,
[laughter] Dan.
>> Oh, no. Yeah. May maybe I undersold
myself at the beginning. A pro.
>> No. Um I don't I don't go in there other
than just to be like, oh, like I kind of
feel like a like it did a lot for me and
now have visibility into it. Um but um
yeah, it's just something that like you
you can do and it's cool to know you can
do it even if you never have.
>> Yeah.
>> Yeah. To to the visibility point, right?
Like you have in some sense as much or
as little control as you want. You can
go step by step, be very specific. You
can say do this generally, let Vzero
cook. You can go change the database.
Like there's so much that you can do. It
really is like whatever level of
expertise that you choose to use, you
can use with Vzero.
>> I'm curious as someone who is an
engineer and has a lot of expertise and
I think would historically want that
control. How have you felt yourself in
the way that you're approaching building
products change? Like do you want less
control now and to focus more on like
the product vision or how does it change
how you approach it?
>> Yeah. So I like to focus on the product
vision. So what I find myself using
Vzero for is making sure that the
experience feels really tight, right? Um
when the engineering comes, you think
about things like scaling and things
like making sure it's secure, which
Vzero is good at. Um I don't need to
worry about that because I know Vzero
will take care of it. And so instead
like right when we have all these tools,
what really matters is taste. And so how
does my taste like? Vzero's taste is
good, but then I have my own opinion or
my users have opinions, right? And so,
how do we integrate that? And that's
exactly like what it is.
>> Now, I'm thinking about your taste
looking at the UI. Are you sort of
disgusted by it? Are you pleased with
it? Are you [laughter]
are there things you would change?
Because I don't have the design eye, but
I want to make sure you're you're
pleasing. [laughter]
>> All right. So, so there's a few things,
right? Like one of one of the the
beautiful things about working on BZero
is that our designers are insanely good
and so they help you uh learn an eye for
detail. So like one of the little things
is like the the email icon next to the
mail is a little larger and to me like
that's a little I don't know I don't
really I don't really like that. Um,
I think I would default to a full screen
view, right? Like if I am looking at my
emails and I don't have a specific email
open, I want to see just the emails. I
don't want this like,
>> oh yeah, whatever this is.
>> Yeah.
>> Yeah. Yeah. Um,
>> that's good. Has this been bothering you
the whole time? [laughter]
>> Look, I'm trying to let you cook, Dan.
>> [snorts]
>> All right. So, let's see what's going on
to get started. Run the SQL scripts in
order.
Okay. So, I have that. Um, so what I'm
going to do is I'm just going to run
all. So, basically, again, it gave me
scripts. I don't have to go to suit. I'm
just going to run these three. And then
it should have access to this base
account because they're in my
environment variables.
And
let's see what we do. But let's also
look at the left. So database email two
tables, emails and user emails. So this
is actually doing that second part of
um this is doing that second part we
were talking about not letting any
single user back else. Um so I guess
I'm just
let's see password. Of course this is
what typing in front of an audience.
It's vulnerable. It's vulnerable. Dan,
don't be too hard.
>> This is nice. Um, let me see if I
um can double check my email.
>> Well, Dan's doing that. Ricky, you have
a um you have fan mail in the chat.
>> Oh, nice.
>> Someone someone's asking if Ricky works
on a particular part of DZero.
>> Yeah, so uh I work across a few
different things. I work a lot with our
ambassadors, actually. So, our referral
program um if you see that that right
that button in the top right where it
says like um
refer I have worked on that um done some
stuff with integrations and I don't know
kind of kind of all across the product
but really like when we think about like
growth and we think about user
experience those are kind of things that
I typically focus on.
>> Yeah.
>> Yeah. So, I don't have functionality yet
to write an email and my dummy data had
no idea who I was when I logged in. So,
um I'm just going to ask it for some
more dummy data. Um
>> that that was actually one of the things
that I was going to tell you is that um
so if we I'm sure it seated the database
correctly, right? But it might have
seated the data for that like for a test
user.
>> Yeah.
>> So you are since you're creating a new
user, you're going to have to do what
you're doing. Exactly.
>> And by that you mean that he wasn't
actually signed in as a user. So the
data wasn't associated with his account.
>> Yes, it might have been associated with
the test account that was optioned at
the beginning. Yeah.
>> Cool. So this lets me sort of bypass
creating the send functionality by just
making sure that the dummy data actually
works for the environment we're in. And
that was fairly quick. All I did was ask
it to um assign that data. So again, I
went off screen before to go into my
inbox. um and [laughter] confirm my my
email. Um so let's see. I don't know if
they ran actually. Um
>> let's see. Go to um go to configure.
>> Uh where do you find that?
>> In the top of the generation, the yellow
banner.
>> Oh, okay. Oh, amazing.
Good call. So now I'm going to run that
one that just created.
Dan, is there an intentional reason why
you only ran the last one versus all of
them?
>> I already ran those. Um, so my data So
what's nice about these migrations is
they're sort of numbered and in order.
So if you keep generating, you'll know
that the most recent one or the most
recent few um were um the ones that you
need to actually run.
>> Yeah.
>> Um
>> Dan, we actually let's check the
database.
>> Okay.
>> In this example. Yeah.
I never check the database.
>> Sometimes you need to, sometimes you
want to. So, I'm just going to go in
here, go to my table.
Yeah. Okay. So, I think what happened is
that because the way that we handle our
integrations when it prompts you to add
it, you added the environment variables,
but it thinks that you're still using
the integration. And so when it ran the
scripts, it tried to run it on an
integration that doesn't technically
exist.
>> Got it.
>> Um, so what we can do in this case, we
can keep trying to troubleshoot through
this or we can try to switch to Neon if
you are certain that this team has
access to that.
>> Yeah, I'm pretty sure. Um, so let me go
and confirm. That sounds like a good
idea. Um, so let's do integrations on
the Vcel side. Um, let me just quickly
confirm.
I should be able to create one. So, what
should I do here? Connect an
integration. Try for neon. Then go ahead
and go through that process and then
I'll tell the script after.
>> Yeah. And what um what we can try too if
you go to the chat is say like can we do
this with neon instead?
>> Let me see if I have the ability on
Cool.
It should work.
That's pretty cool. All right. Let's see
if I can
create a neon database in the cell
account. Let's see. Hopefully, it
doesn't give me a permissions issue for
this one. Okay, so far looking good.
Provide built-in O. Continue.
Should have done that from the start.
Ricky, can you vibe code with me all the
time?
>> I got you. [laughter]
>> All right. So, my database was
successfully created.
It's connecting.
>> Oh, sorry.
>> No, I was just gonna say we are nearing
the end of the build. So, if anyone in
the chat has any questions or any other
last minute ideas you want to throw Dan,
um, we can throw them in.
>> So, that that was pretty cool, though.
like it gave me an idea of okay so I
could connect to marketplace I didn't
personally [clears throat] have
permissions for subbase maybe there are
some protections that we have on our on
one end um but I had the ability to do
it on the neon side and so like you can
just switch things up and like I was
saying before like again that ideal
state is going to differ from like as
you go like so if I told it to use
superbase
it would have been a waste of time
because eventually it would have been
neon so it's like less is more sometimes
and then you just adapt but I think it's
super I think that's like one of the
things I love about vibe coding is you
just change your approach as you go.
>> Awesome. And we did have a question from
the chat of if we can see how the
Verscell team adds a gentic features or
we can build that next session. Do you
all think that we could work in some
drafting emails with AI in this session?
We've got like 15.
>> I think that'd be awesome.
>> Okay, let's do it.
>> Okay. Uh,
so I know it's connecting. I don't know
if we want to keep that keep that
rolling. Um,
Ricky, what would any suggestion on that
side?
>> Yeah, click on the connect app for me.
>> Oh, it just went
amazing. Okay, continue building. Cool.
So now I'm switching from Subase to Ne
Superbase to Neon again only because of
personal permissions thing. I need to
speak with uh whoever I need to speak
with.
>> Yeah, Dan, get on the case, man. We got
to figure this out.
>> What did I do to not be allowed to have
Superbase access?
[laughter]
>> They'll see you after this power hour
and realize they they made a big
mistake.
>> They're like he needs all the private.
So the user wants to switch from neon.
Okay,
pretty cool. It's handling itself. But
let's start thinking about the AI
feature. So one of the things I guess we
would want to do is have a system that
maybe we'll do it manually. So like
click on an email and identify if it's
spam, right? Because we set up that spam
folder. So and let me know if it's a
good idea. like we'd have some sort of
like API that handles
an email ID
>> that can then call the email, run it
against some AI system that has some
guidelines of like, hey, does this look
spammy or not?
>> Um, and then returns a yes or no.
Ideally, that would happen as emails
come in, but um we don't have emails
coming in yet. We're just starting to
create um the initial
uh setup. So, does that sound
reasonable? And then,
>> yeah, we could also do AI summaries.
>> Yeah,
>> cool idea.
>> One of the feature requests was also
like being able to read an email that
comes in and draft with AI like
suggested prompt or I mean a suggested
response.
>> Oh, that's way cooler. [laughter]
>> Spam is for the sake of time. Let's do
the AI summary one.
>> That's so much cooler. All right. I love
it.
>> Keep us on track. [laughter]
All right. So, migrating to neon mouse.
I'm going to start prepping my prompt.
Um, if there's something I need to do
before that, I can always copy uh to
clipboard and so um
ability to um
>> Yeah, you can do that.
>> You can.
>> Um yeah, the vo can do that pretty.
Yeah.
>> So, how much detail would you give it?
like I I could feed it sort of like the
AI stack that I would want wanted to
use. I guess the question from the
audience was how would I do it at
Versil? Um
>> should I um give it a little bit
guidance like AI SDK AI gateway or what
what would you recommend at this point?
How much information would you feed it
to sort of direct the architecture?
>> Yeah, whenever I add AI features, I
don't I'm not specific. I just use AI
SDK. The beautiful thing about Versel
and the ecosystem is that all these
tools just work natively together. So I
don't even need to be that specific
about it. Um if I wanted it to use
something different then I could just
you know add the environment variables
and go that way but SDK and gateway are
the way to go guys.
>> Sounds good to me. So would you say what
I have here in the prompt is actually
probably good enough.
So, introduce the ability to summarize
emails with AI. And I'll make it a
little larger so you can see it.
>> Yeah, that's good.
>> Okay. So, then what I should do now is
configure
and I'll run these because again, now we
switched to to neon. Let's see how we
do.
And so, to your question earlier,
Caroline, now I ran all three.
[laughter]
>> Yeah. So,
>> oh, I think what happened was it
actually did some thinking.
>> Oh, it actually reviewed work. It must
have found an error. So, it the file
editing strategy was off and so reloaded
because it found an error. And then that
sound you may have heard
saying, "Okay, now I'm ready." So,
[snorts]
let's run these
And I guess one of the other cool things
is you could always run them manually.
You really shouldn't have to, but you
can always run them manually. Um,
>> yeah, they'll run in order.
>> Okay, cool.
there.
I'm just going to go.
I'm just going to open Neon and quickly
just go to my SQL editor
and just pop in
does a few things. So, I've got my
scripts.
Just gonna pop that in. So, basically, I
just ran it myself, right? And so, um,
no big deal. Easy. One, two.
All I'm doing is populating my database.
Ah, it doesn't have me as a user yet.
So, what I need to do is um Oh, so what
it did was it combined that last step
actually in this new um prompt. So, what
I could do now probably and let's try it
is sign up. So, sign up again.
Oops.
Okay, I'm in. Now, let's try to rerun
that. Cool.ed.
So, emails receeded. So, now if I
refresh, excuse me, this one.
You can also if you don't want to
refresh the whole site, you can also
just refresh up there.
>> Oh yeah, you're right. Way nicer
experience. Okay, so let's see if our
functionality
um
works. Okay, that was awesome. So it
marked it as red. I have a favoring
functionality. So we're all set. Like I
have my database. I actually have the
seated data. I have these as um like
coming to me and I have my scent. And
then if you made an account, which I
could really publish and give people
access to this, um could make it
available. But let's just start with
this AI summary. Um so I'm just going to
go ahead and prompt with that.
So again, what we're doing here is I
want to be able to click on an email and
then have it summarize it. Um because
people write really long emails and
Ricky had a better idea of summarizing
rather than looking at spam because spam
is kind of boring. Um and so now I'll
add the AI summarization feature. All
right. So I chose AI SDK with AI gateway
which is of course super sweet.
>> Such a smart choice. [laughter]
>> You agreed.
>> Also I found I found that really helpful
running through the database. I know it
was a little difficult, but I feel like
that's one of the problems that
personally as someone who's not native
to working in databases, like if you're
alone spinning, it's like what's going
on and why and is it not working? So,
thank you, Dan, for that. It was that
was helpful.
>> I think one of the cool things that I
skipped just to save some time is you
could have asked Vzero to just walk you
through it.
>> It's so helpful. Like sometimes I didn't
even know like where to run a specific
script and I just asked Vzero and it
like guides me through it step by step
and it's so nice.
signing in. Oh, I think it's okay. And
then let's see. Did it possibly do it
already? Where's my little Oh, I think
it might be up here. Summarize. My
little summarize button.
>> Do you have design thoughts on that?
>> No way. [laughter] All right. I
genuinely like that. That was awesome.
>> That's so cool.
>> And and here's the thing, right? That's
still a lot of text. I might want one or
two sentences. So, you could also be
like, "Hey, we should make this shorter.
Make the summary shorter."
[laughter]
>> Oh,
how about or provide two celebrities?
Let's see. I'm going to see if and I
know I wrote user. I wrote sewers. So
instead of users, but I'm gonna sort of
see if we could I got a little too
confident after that one worked well
that I created one summary. Can we
create two summaries? Right. One for
Ricky and one for anyone who has like a
little bit longer of a summary. It
called it a TLDDR, which is cool.
[laughter]
One sentence for Ricky. It knows you. It
knows you.
>> Vzero is my bestest friend. [laughter]
>> I feel like
while while that's building that for
anyone who's still on in the chat, I
would love to build more things like
this and like actually show how you can
work across Vzero and Purscell and build
real agentic capabilities. And so if
you're in the chat and you have any
other ideas that have been sparked after
this amazing and satisfying summaries
experience um cinnamon because I think
that it would be cool to do more of it
and I think it's again people want to be
doing so much and so the more we can
build together it's fun.
>> Okay. So so it did it but it's reviewing
its work. So, I'm gonna wait before I
sign in. Okay. So, satisfied with what
it did. I'm gonna sign in
and then
let's see if we get our inbox. And then
I'm going to go to a different email
this time.
Amazing.
>> Oh, two options.
>> TLDDR.
Okay. So, this Okay. Sick, Ricky.
>> That's what I want to see.
[laughter] fine.
And then, you know, like I maybe I want
the little more more detailed version.
Um, and so now it's doing its thinking.
It's hitting the AI.
All right. I'm pretty stoked.
>> How about
um so again, we we don't have the
ability to generate responses uh like
new emails. We can do that next time. Uh
but it would be cool to be like generate
a response. This one probably doesn't
get a response because it's a
notification email. Um,
but now maybe I want to respond to this
proposed revision. So maybe what we do
next time is we consider, hey, based on
the context of this, generate a summary
and then maybe it'll even suggest
responses that you might have and then
we could go to that. So we'll build like
uh, you know, if you if you guys will
have me on again, of course.
>> Oh, damn. when you you said it once and
I'm already like thinking in the
calendar for next Wednesday.
>> I think this would be awesome is if we
take to the next level. We have like an
email composer. Yeah.
>> And then we have the ability to take our
summaries create suggestions and then we
combine the two, right? Basically say,
"Hey, take this, write a summary, put in
the email composer and then start to
send emails and at some point maybe we
use something like resend to send
emails." And
>> that was that was the original prompt
request actually.
>> Something we got we got to deliver. Are
you glad I didn't come come through?
>> No, no, no, no, no. I just not not yet.
We'll do it though. That's awesome.
>> Cool. Well, I'm pretty stoked. Let's try
one more of just this week in tech,
which is already looks like it's already
a summary of things. And sorry, Ricky.
Is that too much reading? Um, I don't
want you to have to read all that. Okay,
there you go. [laughter]
I gave you your TLDDR.
This was awesome. Ricky, any any expert
feedback for Dan?
>> I think this was great. Uh, we kind of
talked through a lot of different things
that you can do. I think what was really
cool is actually showing the database
because if you are a user, if you aren't
that technical, right, you can use vzero
things can happen and you can understand
what things what to do and how to fix.
Um, you aren't ever stuck in the state
that you currently are, right? can
always learn more and I feel like we try
to make it as easy as possible to do
that. And then of course, as Dan is
showing you, which I was definitely
going to mention, we definitely can
publish our sites. We can create
templates from our sites. So, it doesn't
have to stop with just your idea. It
also can move forward to sharing that
idea with the world.
>> So, now I kind of want people to play
with this. Um by default our enterprise
account uh makes uh deployments
protected from to just
uh versel. But all I can do is go from
all deployments which would require
password protection for everyone on the
planet for every single domain uh to
standard protection which will make our
production domain actually available.
And so as soon as that deployment's done
so basically all I did was change who
can access the deployment. This one's
already ready. So, if I give if you go
to this,
you should be able to access it and you
should be able to sign up. The one thing
you probably won't be able to do, I
should be able to log in.
The thing you shouldn't be able to do
would be
create a new emails. So you might have a
blank one, but now I'm getting maybe
hopefully some users um because again
this is possibly a brand new startup
that we're going to create. [laughter]
Um and yeah, I think that's pretty cool.
So what we have here is this is a full
versell deployment. This is live. This
is live on the internet. Anybody can go
to it. Um you will you won't have uh the
you won't be blocked by authentication
other than our app authentication
because what we did was we changed that.
But very quickly it made it accessible
to the entire planet on Verscell's
global network. It has all the things
like um API point endpoints which are
running Versel functions, AI SDK, AI
gateway. So again we touch zero API
keys. We're connected to LLMs, right?
Pretty cool if you ask me.
>> That's awesome. Okay. Oh, we we're
getting more questions for the next
time. Building some good ideas.
>> Oh, love it.
>> Can we get an agent builder series where
we focus on generative UI and people can
learn all about agents and have a
hackathon at the end where everyone
submits their project for the VZ
ambassador program? Ricky, did you did
you put that?
>> Did you [laughter]
know me? Yeah.
>> Speaking in recognized language. That's
[laughter] awesome. Um, but yes, we can
we can work on making that happen. Um, I
do know that we we are at the hour of
power hour. Um, Dan, Ricky, this was so
fun.
>> This was awesome.
>> It sounds like we're we're gonna keep
doing it next Wednesday for
>> I'm down. I'm
>> invited back.
>> Like, I don't know yet.
>> No, we'll be back. It's good. [laughter]
>> Um, awesome. Okay. Well, thank you to
everyone who joined us and seriously,
Dan and Ricky, thank you so much. It was
really fun and I'm excited. We have a
lot of ideas for what we're going to
build next time. So, join us on the next
Power Hour next Wednesday.
Sounds awesome.
Kicking off the New Year with Ep 2 of v0 Power Hour: Let's Build Your App. Join the v0 Team as we build a full stack app, live - from your ideas. What should we build? Drop your ideas in the chat! Community event page: https://community.vercel.com/t/v0-power-hour/30814