How I Vibe Coded a Full App using Claude Code (with Database, Payment, Login) — Transcript
Full transcript
- 0:00Cloud Code is one of the most powerful
- 0:01AI tools out right now, but a lot of
- 0:03people are avoiding it for one reason.
- 0:05It has the word code in it. Especially
- 0:07when you're seeing terms like MCP,
- 0:09skills, repos, it can feel quite
- 0:12intimidating. So, in this video, I'm
- 0:13going to give you a non-technical
- 0:14beginner's guide to Cloud Code. But,
- 0:16this won't be a boring checklist video
- 0:18where I just go through a bunch of
- 0:20terms. But, instead, we're going to
- 0:21actually build something together, and
- 0:23I'm going to explain each concept as it
- 0:25comes up in plain English. So, by the
- 0:27end of the video, you'll understand what
- 0:29Cloud Code is, what all of these terms
- 0:31mean, and how you can start using it to
- 0:33build real applications, even if you've
- 0:35never written code before. And I'm going
- 0:38to be including timestamps down below.
- 0:39So, if you already understand a
- 0:40particular section, you can skip ahead.
- 0:42Now, before we start, I want to explain
- 0:44what Cloud Code is and how it's
- 0:46different from Cloud Chat. So, if you've
- 0:48been using Chat GPT or Cloud Chat,
- 0:50you're basically asking questions to the
- 0:52AI, and it comes back with an answer.
- 0:55But, with Cloud Code, not only that you
- 0:57can ask questions, but you're able to
- 0:58build things like websites,
- 1:00applications, and tools. And despite the
- 1:03word code here, you're not actually
- 1:04writing any code, but you're talking to
- 1:06it the same way that you would in Cloud
- 1:08Chat, right? So, you think of Cloud Chat
- 1:10as a tool that gives you information,
- 1:12and Cloud Code as a tool that helps you
- 1:14build things. And what makes Cloud Code
- 1:17even more powerful is that it can
- 1:18connect to apps that you already use
- 1:20through something called connectors. So,
- 1:23this means that you can connect to apps
- 1:24like Gmail, Slack, Canva, and a bunch of
- 1:26other tools. And these are the apps that
- 1:28you probably already use on a daily
- 1:29basis. And once you enable that
- 1:31connection, you can start to create very
- 1:33interesting automations, like replying
- 1:35to your emails, designing banners
- 1:36through Canva, and some other things
- 1:38that you probably never thought was
- 1:40possible. Now, there are three main ways
- 1:42that you can access Cloud Code. The
- 1:44first way is through the official
- 1:46desktop app here, right? Cloud has its
- 1:47own desktop app. And inside, you will
- 1:49see chat, co-work, and code. And this is
- 1:52probably the easiest way to start
- 1:53because everything is more visual here.
- 1:56Now, the second way is through a
- 1:58terminal, right? And terminal looks like
- 1:59this. And I know for most beginners,
- 2:01this is probably going to look very
- 2:02intimidating. But this is how actually a
- 2:04lot of developers use Cloud Code because
- 2:06it gives you the most amount of control.
- 2:08Now, the third way is through an IDE,
- 2:10which stands for integrated development
- 2:13environment. So, this could be something
- 2:14like VS Code, Anti-gravity, or Cursor.
- 2:17These are the tools where you can open
- 2:18your project, you can see all your files
- 2:20and folders, and you can use Cloud Code
- 2:22inside of that environment. Now, VS Code
- 2:24is probably the most popular one, and
- 2:25big reason why a lot of people like
- 2:27using Cloud Code inside of VS Code is
- 2:29because you can spin up a Cloud Code
- 2:31session in the middle, and you can
- 2:32immediately see the files that it's
- 2:33created on the left side here. And you
- 2:36can watch everything happen as it builds
- 2:39the apps for you. So, I think what it
- 2:41comes down to is control, right? So, the
- 2:43terminal gives you the most amount of
- 2:45control, but it's also the most
- 2:47intimidating if you're just starting
- 2:48out. The desktop app gives you less
- 2:50overall control, but it's a lot easier
- 2:53to understand visually. But honestly,
- 2:54Cloud has been making a lot of updates
- 2:56to the desktop app compared to even
- 2:57couple months ago. It feels a lot more
- 2:59integrated now. You can preview what
- 3:01you're building on the right side. You
- 3:02can use the browser. You can look at
- 3:04your files, and you can do a lot more
- 3:06directly inside of the app. So, if
- 3:08you've been watching other tutorials
- 3:09where people are using terminal or VS
- 3:11Code, now you know what you're looking
- 3:13at. Now, I think for most people, the
- 3:15desktop app is more than enough. So, in
- 3:17this video, I'm going to show you how
- 3:18everything works inside of the Cloud
- 3:21desktop app. Now, the next thing that
- 3:22you need is a Cloud subscription. If And
- 3:24if you are doing this for the first
- 3:26time, I'd recommend starting with the
- 3:27cheapest plan here, $17 a month. And I
- 3:30think this is good enough for most
- 3:31people when they're getting started. And
- 3:33once you start building more things, you
- 3:34can upgrade to the $100 plan that gives
- 3:36you five times more usage, or even the
- 3:38$200 plan with 20 times usage. Now,
- 3:41speaking of usage, this is something
- 3:42that you want to pay attention to as
- 3:43well as you're building your app. If you
- 3:46go to settings and usage, you're going
- 3:47to be able to see your usage here. So,
- 3:49even though you're on a a plan, the
- 3:50limit resets weekly, and it also resets
- 3:53every 5 hours. And I know that's
- 3:55confusing at first, but you can monitor
- 3:57the progress here. So, if you're working
- 3:59on something and you hit your limit,
- 4:01just be aware that it won't be long
- 4:02until you can use it again. And also,
- 4:04there's a couple of ways that you can
- 4:05conserve your usage, so I'll be sharing
- 4:07some of those tips throughout the video.
- 4:09All right, so I'm going to start
- 4:10building something so you can see all
- 4:11these features being put to use. So,
- 4:13rather than giving you a boring
- 4:15checklist of tools that Cloud Code has,
- 4:17I'm actually going to build something so
- 4:18you can see all these features being
- 4:21used live. I think that's a better way
- 4:23to learn. And today, we're going to
- 4:24build a simple web application, so maybe
- 4:26like a stock investment app where you
- 4:28can put in a ticker symbol and it gives
- 4:30you live pricing stocks just like what
- 4:32you see on Yahoo Finance or Google
- 4:34Finance. And I'm also going to show you
- 4:36how to add an API to get the live
- 4:38pricing of the stocks and how to even
- 4:40connect to Stripe for taking payments.
- 4:43So, if you're charging people a monthly
- 4:44subscription, I'm going to show you how
- 4:45to add that into your web application.
- 4:48And I'm also going to show you how to
- 4:49set up a database and how to connect
- 4:50everything together, and finally, how to
- 4:53deploy that to the web, how to connect
- 4:54to a hosting provider, and make it live
- 4:56so everybody can access your website.
- 4:59All right, so I am on the desktop app
- 5:00now. If you don't have this already,
- 5:02please download it. And before I start a
- 5:05project, I like to connect to a folder.
- 5:07So, if you look to the bottom left here,
- 5:09you'll see that I'm connected to this
- 5:11folder. So, you can click on this
- 5:13and open folder. So, as you can see
- 5:15here, I have connected this folder that
- 5:17I just created, basically a blank folder
- 5:19with just one image here. And you want
- 5:21to do this for every project that you
- 5:23create cuz this is the place where Cloud
- 5:25is going to create all the files related
- 5:28to this app. And when it comes to
- 5:30publishing or deploying your app, it's
- 5:32going to be a lot easier because all
- 5:34going to be in one place. So, So, if you
- 5:36want to create a new folder, you can
- 5:37just click a new folder, but in this
- 5:38case, I already have this one here, so
- 5:40I'm going to click open. And then you
- 5:42can see the folder name populate here.
- 5:45Now, in the bottom right, you will see
- 5:46that you can select models here. So Opus
- 5:494.8 just released today actually when I
- 5:51was recording this video. I don't think
- 5:52that you need to use the best model for
- 5:55every task because again if you're not
- 5:58on the max plan you got to burn through
- 6:01your tokens very very quickly. So for me
- 6:03I only use the Opus models when I'm
- 6:05orchestrating the app when I'm building
- 6:07the structure of it or when I'm asking
- 6:09it to think of complex problems or maybe
- 6:12if there's an error that Sonnet cannot
- 6:13fix then I will switch to Opus to help
- 6:16fix the issue. For so for 80 90% of my
- 6:18projects I always use Sonnet 4.6. Now
- 6:21before I start any project I like to
- 6:23plan and structure the application. You
- 6:25don't want to just give it one prompt
- 6:27and ask it to build it immediately. So
- 6:29here on the bottom left you can actually
- 6:30click on plan mode and this allows
- 6:32Claude to ask you clarifying questions
- 6:35before it builds anything. So it's
- 6:36actually you're having a chat with
- 6:38Claude to determine the features that
- 6:40you want in the app and how to actually
- 6:42structure the whole app before actually
- 6:44building anything. And this is called
- 6:46meta prompting. So meta prompting
- 6:47basically means that you're asking the
- 6:49AI to help you create the best prompt
- 6:52and this is a good exercise especially
- 6:53if you don't have domain expertise on
- 6:55the app that you're building. And even
- 6:56if you're confident on the subject
- 6:58matter I think this is a good exercise
- 7:00just to brainstorm with Claude and
- 7:02you'll start to uncover a lot of new
- 7:03things that you might want to implement
- 7:04on the apps. So I have this prompt ready
- 7:06here I'm going to paste it here. I want
- 7:07to build a stock investment app similar
- 7:09to this app here Google Finance
- 7:11basically right? So Google Finance just
- 7:13looks like this and it's just a simple
- 7:15page where I can put in my ticker symbol
- 7:17here and it will give you the pricing
- 7:19and also you can see some news here and
- 7:21you can add these stocks to your
- 7:23portfolio and save it. And let's call
- 7:25the app Market Cap. It has live pricing
- 7:27news and the ability to save stocks in
- 7:29my portfolio. List out the features I
- 7:30should have and map out the plan and how
- 7:33we're going to build the app and ask me
- 7:35clarifying questions. And then I'll just
- 7:37go and hit send. So as you notice for
- 7:39every project I like to give it some
- 7:40kind of reference right? Whatever app
- 7:42that you're trying to create or build,
- 7:44there's probably already something out
- 7:45there that already exists. So, by doing
- 7:47this, you tell the AI to actually look
- 7:49at this reference website, study the
- 7:51features they have, and maybe try to
- 7:52suggest new unique features that maybe
- 7:55you can add to your make it unique. Now,
- 7:57because you're on plan mode, Cloud is
- 7:58actually going to give you a lot of
- 8:00these questions before actually building
- 8:02anything, right? So, first question it's
- 8:03asking is what should Market Cap
- 8:05actually do? Would stock track only? Is
- 8:07it going to just watch live prices, read
- 8:09news, or you want to do paper trading or
- 8:11real trading? No, I just want this one.
- 8:13And what platform should we build for
- 8:15first? So, are we building a web
- 8:16application, mobile app, or desktop app?
- 8:18So, obviously we're going to do this
- 8:19one, which is also recommended here. So,
- 8:21click on this. And where do we get live
- 8:23pricing news data? So, free API,
- 8:25Finnhub, Alpha Vantage, paid API. Okay,
- 8:27we're going to go with free one,
- 8:28obviously. So, just me, single user, or
- 8:31multi-user account? So, obviously we
- 8:32want other people to be able to sign up.
- 8:34So, we're going to connect to Supabase
- 8:36authentication and role-level security.
- 8:37So, we do want this one. So, it's more
- 8:39complex, but that's what this tutorial
- 8:41is for, right? So, click on this, and
- 8:43then it's going to do a bit more
- 8:45thinking. And now it's giving me a full
- 8:47plan, right? So, on the right side here,
- 8:49it's pulled up a new window inside the
- 8:51app. So, Market Cap build plan, right?
- 8:53Jason wants to build Market Cap stock
- 8:54investment app modeled after Google
- 8:56Finance. So, and down here you'll see
- 8:58that we've got four bullet points here,
- 9:00what we're going to do, we're going to
- 9:01track the prices only, there's no buying
- 9:03or selling, what kind of platform we're
- 9:05going to build, and then where we get
- 9:06the API from to get the live pricing,
- 9:09and also the ability to add users,
- 9:11right? And if you scroll down, you're
- 9:13going to see more detail on what the
- 9:14features that we're going to have on the
- 9:16app, which I think looks really good.
- 9:18This is everything that I was thinking
- 9:20about, actually. So, yeah, it's going to
- 9:23be responsive as well, got live pricing,
- 9:25got the news feed, and the ability to
- 9:27add stocks to your own portfolio. Nice.
- 9:29So, these are the tech stack as well,
- 9:32and they look correct to me. And if I go
- 9:34down here, you'll see that there are two
- 9:37things that I need to provide, which is
- 9:39the API key and confirm the Superbase
- 9:41project, which is what we're going to
- 9:42get to later on. All right, so I'm going
- 9:43to approve the project, but before
- 9:45asking it to build everything, I want to
- 9:47see the visual, right? I want to see
- 9:48what the app will look like, cuz for me,
- 9:50I like to build out the front end first,
- 9:52approve the design, and then I have it
- 9:54build the back end to connect all the
- 9:55functionality. Now, in order for it to
- 9:57come up with a good design, you need to
- 9:58have references, right? Now, I like to
- 10:00go to Dribbble here to find design
- 10:02inspiration, so I can search for
- 10:04investment app here, and you'll see tons
- 10:07of examples here of beautiful-looking
- 10:09designs that you can just grab and bring
- 10:11it to Claude for reference. Or if you
- 10:13can't find anything you like, you can
- 10:14also go to Pinterest here. So, if I type
- 10:16in investment web app, you'll also see a
- 10:19bunch of designs that you can choose
- 10:21from. And I was just doing this earlier,
- 10:23and I found this one that I quite like.
- 10:25So, so I'm going to click on this, make
- 10:27it bigger, and then I just save as
- 10:29image, and then save it here in the
- 10:32folder that we created, Market Cap app,
- 10:34right? And this is actually the
- 10:35reference image that you probably saw I
- 10:37have in that folder. So, I'm going to go
- 10:39back to Claude and then give it this
- 10:41prompt, right? Before you build the app,
- 10:42build the front end dashboard. There's a
- 10:43reference image in that folder. I want
- 10:46the app to follow this design, and then
- 10:48hit send. Now, while this is working, I
- 10:50think this is a good time to talk about
- 10:52the context window. So, you'll hear this
- 10:54term a lot, and that just means that
- 10:56there's a limit on how much memory
- 10:57Claude can retain in a single chat like
- 10:59this. So, you'll see this icon here, and
- 11:02if you click on that, you'll see that
- 11:03this particular session has 1 million
- 11:06window, and we've used about 56,000
- 11:08here. So, that's about 6%, right? Now,
- 11:10the way this works is that whenever you
- 11:12ask a question or whenever you prompt
- 11:14something new, it's Claude is actually
- 11:15going to read every single thing in this
- 11:18chat session all the way from the very
- 11:20beginning. So, the longer your chat is,
- 11:22the blurrier it becomes and the slower
- 11:24it gets, right? So, there's a max of 1
- 11:27million tokens here, which is quite a
- 11:28lot, actually. And And that's because
- 11:30we're using Opus 4.7, but if you are
- 11:32using Sonata 4.6, you only get about
- 11:34200,000 contacts window, which is a lot
- 11:36smaller. But when it gets to that point,
- 11:38what you want to do is you actually
- 11:40going to compact the conversation,
- 11:41right? Compacting means it will only
- 11:43retain all the important things in this
- 11:45conversation. Now, for me, what I find
- 11:47is that even after you compact the
- 11:49conversation, the quality dips. It
- 11:51forgets a lot of different things. I'll
- 11:53just ask it to summarize all the
- 11:55information that is important and
- 11:56crucial. And then I'll start a brand new
- 11:58chat, and then I'll just copy that
- 11:59information. And because we're working
- 12:01in this particular folder, it has all
- 12:03the files that it needs to get more
- 12:05context. And don't worry, it will
- 12:07actually make sense the more that you
- 12:09use Claude. But that's basically how
- 12:11context window works. All right, so now
- 12:13after a few minutes, it's starting to
- 12:14finish up the visuals here. And if you
- 12:16look here, it's actually using Claude
- 12:18preview here, which is basically an
- 12:20internal tool that Claude has, which
- 12:22will test the app that it's building by
- 12:24itself before handing it to me, right?
- 12:26Which is good. And this one in
- 12:27particular is checking whether the dark
- 12:29mode works. So, here it doesn't error,
- 12:31dark mode is not applying. Let me
- 12:32inspect the DOM state to debug. So, it's
- 12:34actually fixing its own problems here
- 12:36before handing it over back to me to
- 12:38inspect. So, this is mind-blowing,
- 12:39right? It's actually fixing its own
- 12:41errors, and it's doing a lot of the work
- 12:43here. All right, so it looks like this
- 12:44is done. So, you'll see that the front
- 12:46end dashboard is built and matches the
- 12:48reference design. It's running at
- 12:49localhost 3000. Now, you'll see this a
- 12:51lot, right? Localhost simply means that
- 12:53it's only running on your computer.
- 12:55Nobody else has access to this because
- 12:57you're just doing a demo. You're testing
- 12:59things out, right? Now, there are two
- 13:00ways that you can inspect the app. One
- 13:02is through the in-app browser here. So,
- 13:05let me close this out so I can make this
- 13:07thing bigger. So, Claude has an in-app
- 13:09browser here. So, this is actually a
- 13:10browser
- 13:11that you can scroll down. And this is
- 13:13actually a web application, not a mobile
- 13:15app. It just looks this way because it's
- 13:17squished together, right? So, um the
- 13:19other way is actually opening this up on
- 13:21your Chrome browser. So, if I click on
- 13:23this, I can see the full application
- 13:25here, which is a lot easier to see. so
- 13:27let me zoom out in here. And this
- 13:29follows exactly the reference image that
- 13:30I gave it, so that's a good thing. And
- 13:33all of this obviously is dummy data. We
- 13:35haven't connected the API
- 13:37for pricing. And if I scroll down here,
- 13:38let me check dark mode, light mode.
- 13:40Yeah, that works, right? So, I think
- 13:42this is just visuals, which is already
- 13:44looking very good. Now, the reason why I
- 13:46like having the in-app browser here is
- 13:48because if I want to make changes to any
- 13:50of these elements here, I can just click
- 13:52on either this, the pencil icon here,
- 13:54and I can just circle, and then I can
- 13:57click add to chat, and I can make
- 13:59changes. I can say change this to green,
- 14:01change this to red, or whatever I want,
- 14:03right? Or you can also click on the
- 14:05second icon here, which is the annotate
- 14:07icon. So, if you click here, you'll see
- 14:09that it's going to select each UI
- 14:11element, the exact one actually, and
- 14:14this is actually more accurate than just
- 14:15scribbling on the screen. So, let's say
- 14:17I want to change this portfolio value
- 14:19to, say, total value instead. So, I can
- 14:21just click here
- 14:23and change text to total value, right?
- 14:27And you can do this to change the text
- 14:29or change the colors, change the font
- 14:31size, anything you want, basically. And
- 14:33there you go. Now, it's changed the text
- 14:35to total value. Now, you're going to see
- 14:36that all these prices are still dummy
- 14:39data. So, the next step would be to get
- 14:41a free API to connect it to this app
- 14:43here and get live pricing, right? So,
- 14:46that's very easy to do as well. So, it's
- 14:47actually recommending me to go to
- 14:49Finnhub live data here to get the free
- 14:51API key, so we can connect it to the
- 14:53cloud, right? So, I'm going to go to
- 14:54this website here and just sign up for a
- 14:56free account. And once you sign up,
- 14:58you'll have this API key here that you
- 15:00can give to Claude. So, think of API key
- 15:03as like a password, right? So, this is a
- 15:05secret key that you actually don't want
- 15:07to give to other people because this one
- 15:09is free, but if you are giving an API
- 15:11key out for, let's say, an app that
- 15:13you're paying for, and if it gets
- 15:15exposed, you're going to be paying for
- 15:17everything, basically, right? So,
- 15:18anybody can steal this. So, you want to
- 15:19copy here, and you want to keep it in a
- 15:21safe place. And I'm going to go back to
- 15:23Claude and I'm going to say, "I'm ready
- 15:25to connect to Finhub to get live
- 15:27pricing. I have the API key ready, set
- 15:29up the environment file, and get ignore
- 15:31so I can paste in the API key." So, you
- 15:34don't want to copy the API key here in
- 15:36the chat cuz if your chat gets exposed,
- 15:38then like I said, everybody can access
- 15:40your API keys, right? So, what you want
- 15:43to ask Claude to do is actually to set
- 15:44up .env file, which is basically just a
- 15:46text file that lives on your local
- 15:48machine. And you also want to set up
- 15:50.gitIgnore so it doesn't get pushed to
- 15:52GitHub when you actually deploy the app.
- 15:54And .env is basically an environment
- 15:56file. It's basically just like a text
- 15:58file that you keep all your passwords
- 16:00in. And again, it lives on your local
- 16:02machine and it doesn't get uploaded to
- 16:04GitHub. So, hit enter here. All right,
- 16:06so it's created the .env file inside of
- 16:08the .gitIgnore. So, I can just simply
- 16:11click on this.
- 16:12And then it'll open up like a text file
- 16:14here.
- 16:15And you can simply paste in the API key
- 16:18right here. And once you do that, you
- 16:20can just click done. And it's going to
- 16:22try to connect to the API. And actually
- 16:24wire up the functionality of the app.
- 16:26So, I'm going to let it work for a few
- 16:28minutes. And I think this is a good time
- 16:29to talk about connectors, right? So, if
- 16:31you click down here, plus icon, go to
- 16:33connectors, you'll see that I've
- 16:35connected to Stripe and Superbase and
- 16:37also Claude and Chrome, right? So, if I
- 16:38go to manage connectors, you'll see that
- 16:41Claude can actually connect to all these
- 16:43popular apps here. So, for example, if
- 16:45you're connecting to Gmail, Claude can
- 16:47actually draft replies, you can actually
- 16:49respond to your emails. If you're
- 16:50connected to Canva, Claude can actually
- 16:52create designs for you without you
- 16:54having to manually go to Canva and
- 16:56actually perform those jobs yourself,
- 16:57right? Now, in our case, I've connected
- 17:00to Stripe and Superbase cuz we're going
- 17:02to use Stripe to accept payments, to
- 17:04create payment links, and we're going to
- 17:06use Superbase to connect a database and
- 17:08store all the users' information, right?
- 17:10All right, so it looks like it's done.
- 17:11So, I'm going to test it out. Instead of
- 17:13testing it here, I'm going to open my
- 17:15Chrome browser again. And I'm just going
- 17:16to hit refresh here. Okay, and I'm going
- 17:18to test the API if that works, right? If
- 17:21I click here, and let's say I want to
- 17:23search for Microsoft MSFT. Yep, there
- 17:26you go. So, it pulls all this
- 17:27information from Finnhub. So, I'll click
- 17:30on Microsoft, and there you go. So, it's
- 17:32got the pricing, even has the chart
- 17:34here. Uh this is not available for some
- 17:36reason. 1 month, 3 months, and 1 year,
- 17:40and you can hover around here for the
- 17:42pricing. And then, if you look down
- 17:43here, it's actually pulling all the news
- 17:45as well. So, that is awesome. And just
- 17:48to make sure that this is actually the
- 17:49correct price, if I go to Google, and I
- 17:52search on MSFT. Yeah, 426. So, that is
- 17:55the correct pricing.
- 17:56Which is good. All right. So, next,
- 17:58we're going to add a functionality where
- 17:59the user can actually save the stocks to
- 18:02their portfolio, right? And in order to
- 18:04do that, you're going to need to set up
- 18:05a database. So, database is simply a
- 18:07place where you can store users'
- 18:09information, like the stocks that they
- 18:11have saved to the portfolio. So, think
- 18:12of it like an Excel spreadsheet, where
- 18:14if you were to do this manually, let's
- 18:16say you have 10 customers, right? Each
- 18:18customer has different stocks in their
- 18:19portfolio. These 10 different customers
- 18:21have different stocks that they've added
- 18:23to their portfolio. So, you want a way
- 18:25to be able to store that information.
- 18:27And we're going to use Supabase to
- 18:29manage the database for us. Now, at the
- 18:31same time, we're also going to add a
- 18:33pricing plan here, cuz most likely than
- 18:35not, if you are building an app like
- 18:36this, you're going to charge a
- 18:37subscription, right? You want to charge
- 18:39a monthly fee to be able to to access
- 18:41premium features. So, for this example
- 18:43here, we're going to use Stripe
- 18:45to accept payments, and I'm going to
- 18:46show you how to do that in Cloud Code.
- 18:48So, here's the prompt that I'm going to
- 18:50give to Cloud, right? So, I'm going to
- 18:51do two things at once, which is to set
- 18:53up the database, and also payments,
- 18:55right? So, for database, set up a
- 18:58database with Supabase. I have the SCP
- 19:00connected. I just want to have the
- 19:01ability for users to log in and save
- 19:04stocks to a watchlist, right? Users can
- 19:06only see their own stocks. And for
- 19:08payments, I also want to build a pricing
- 19:10page with two plans, the free plan and
- 19:14also a paid plan. Let's say you want to
- 19:16charge 20 bucks a month. You want to
- 19:18allow users on this plan to save stocks
- 19:21to their watch list, right? Uh set up
- 19:22Stripe recurring payment. I have Stripe
- 19:24MCP connected. Create a dummy pricing
- 19:26page so I can test the payment in
- 19:29sandbox mode. Sandbox mode means that
- 19:31it's uh this testing mode. It's not live
- 19:34payment so you can you know, put in a
- 19:36random credit card number and just want
- 19:38to test if the payment goes through,
- 19:40right? And I've authenticated myself to
- 19:43both Stripe and Supabase. And if you're
- 19:45wondering, the word MCP just simply
- 19:47means that is a connector. And of
- 19:48course, if you're doing this for the
- 19:49first time, you do want to create uh
- 19:52free account in Supabase. So I have my
- 19:54own account here. It's free to sign up
- 19:56so as you can see, I have this project
- 19:57that I have already. And of course, you
- 19:59also want to have a Stripe account,
- 20:01right? So set up Stripe and right now
- 20:03I'm on test mode here. So if you already
- 20:06signed up for Stripe and you want it to
- 20:08be on the sandbox mode for testing, you
- 20:10want to click here and just click switch
- 20:12on sandbox mode. So I'm going to hit go
- 20:14here and going to let it work. Now it's
- 20:16going to check Supabase and Stripe
- 20:18simultaneously and it's probably going
- 20:20to ask you for API keys to be able to
- 20:22connect to those tools. So you can just
- 20:24follow instructions. And one tip I can
- 20:26give you when you're live coding, you
- 20:28want to make sure that you actually
- 20:29understand the things that it's doing
- 20:31and not just blindly following the
- 20:33instructions and just hitting go cuz
- 20:35it's really easy to do that, right? But
- 20:37I think it's really important to
- 20:38understand every concept and why it's
- 20:40doing certain things, right? Why you
- 20:42want to use a database? Why you're in
- 20:43sandbox mode? And if you don't
- 20:45understand what a database is, you can
- 20:46just ask it, "Hey, what is a database?
- 20:47Why do we need this?" Or why do we use
- 20:50Supabase and not other tools? So uh
- 20:51these are the things that you can
- 20:52actually ask Claude to explain to you
- 20:54and you can ask it to explain it to you
- 20:55in plain English so you can actually
- 20:57understand this concept. So the moment
- 20:59comes up again next time, you already
- 21:00know what to do and it gets a lot easier
- 21:02then. And most importantly, you
- 21:04understand what you're building because
- 21:05if something breaks in the future, you
- 21:07already understand the structure of the
- 21:08app and how things work together and
- 21:10it's going to be a lot easier to fix.
- 21:12And I think that's a better mindset to
- 21:14have when you're live coding. All right,
- 21:16so it looks like everything is done now.
- 21:17Let me check this out. I go to my
- 21:19browser again. Let me refresh the page.
- 21:21And now if I go to pricing on the left
- 21:23here, it's created this new page here
- 21:25with two plans, free and pro. And if I
- 21:28click on upgrade to pro, it's actually
- 21:31created the payment link in Stripe as
- 21:33well. So if you're wondering how this
- 21:35was set up, actually if I go to my
- 21:37Stripe account, and again I'm on sandbox
- 21:39mode here, so all of this is dummy data.
- 21:41So if you were to create a payment link
- 21:43manually, you would go to payment links
- 21:45here and you would create a test payment
- 21:48link, right? But as you can see, Claude
- 21:50actually created this payment link for
- 21:52us because we had the MCP connected and
- 21:55it was able to go into our Stripe
- 21:56account without me having to do this
- 21:58manually. Now if you're doing this for
- 22:00the first time, when you connect your
- 22:02Stripe MCP to Claude, it's going to ask
- 22:05you to authenticate your account. And
- 22:07also it's going to ask for your API key
- 22:09so that Claude can talk to this
- 22:11particular account, right? And to get
- 22:13that API key, you can go to settings and
- 22:15you can go to developers and click on
- 22:18manage API keys and it's going to be
- 22:20these ones on the bottom here. And
- 22:22again, you want to save this in the ENV
- 22:24file so that it doesn't get leaked to
- 22:27the public. Now before I test this, I
- 22:28want to go back to the home page and I
- 22:30want to try logging in cuz Superbase is
- 22:32connected now and I can start to create
- 22:35my own account, right? So if I go back
- 22:36to this pricing page, even if I click on
- 22:39get started free, it's going to prompt
- 22:41me to create an account and let's see if
- 22:43I can create account here. Click enter.
- 22:47Thanks. All right, I'm going to confirm
- 22:48my account real quick and then I'm going
- 22:50to log in again. Sign in and I'm in. So
- 22:53that login works and if I want to check
- 22:57whether the database is connected, I can
- 22:58go to Superbase now and I already have
- 23:01this project here. But if you're doing
- 23:03this for the first time, obviously you
- 23:04want to click on new project, and then
- 23:06you would just create new project. But
- 23:07this is a particular project that we're
- 23:09working on, so I'm going to click on
- 23:10this one, and I'm going to click on the
- 23:12table editor here.
- 23:13And I want to click on profiles here,
- 23:15and you can see that this is the account
- 23:17that I just created, right? So it shows
- 23:18up here, so which means that it's
- 23:20connected, right? Now, if I go back to
- 23:22our website here, and I click on this
- 23:24stock, Apple, now I want to click on add
- 23:27to portfolio. Now, since this is a pro
- 23:29feature, right? It's just triggered me
- 23:31to upgrade. So if I click on this, so it
- 23:33gives you this pricing page, and it's
- 23:35going to ask me to upgrade to pro. So if
- 23:37I click on this, it's going to go back
- 23:38to the Stripe page that we created
- 23:41earlier. And since this one is just a
- 23:43test link, I also want to make sure that
- 23:44this works, right? So I'm going to put
- 23:46in my email, and then I'm going to check
- 23:48if this works. And I'm going to paste in
- 23:50this random number here, and this is
- 23:52something that you can use to test out
- 23:54your payment links for your Stripe
- 23:55account, and then fill out the name as
- 23:57well, and the country, zip code, and hit
- 23:59subscribe. And if I go back to Stripe,
- 24:02that transaction actually went through
- 24:03here, succeeded. Now, if you go back to
- 24:05the website, you can see that I am now
- 24:07upgraded to pro, and with this badge
- 24:10right here. And now I want to check if I
- 24:12can start adding stocks to my portfolio,
- 24:15and then I actually want to see it
- 24:17displayed on the database as well, to
- 24:19just verify that everything is connected
- 24:21properly. So if I just click on this
- 24:24stock here, Google,
- 24:25and let's say I want to add this to my
- 24:27portfolio, click on add to portfolio.
- 24:29Yep, there you go. So I can add more
- 24:31shares here.
- 24:32100 shares, maybe
- 24:34uh $1,000, and then hit add to
- 24:37portfolio.
- 24:38Yep, added to portfolio. Uh let me add a
- 24:40couple more, just to make sure that this
- 24:43works. Netflix, add to portfolio, 20
- 24:46shares, $500,
- 24:48add to portfolio. Yep, there you go. And
- 24:51on the left here, I have a page called
- 24:52portfolio, so I can click on this, and I
- 24:54should be able to see the two stocks
- 24:56that I just added, which are all here.
- 24:58Perfect. Now, I also want to make sure
- 25:00that this is not just displayed on the
- 25:02website, but also saved in the database
- 25:04that we just created. So, if I go back
- 25:06to Superbase again, I go to table
- 25:08editor, and it actually created a new
- 25:11table here called holdings. So, here
- 25:13you'll see the two stocks that I just
- 25:15added, Google and Netflix here, and
- 25:17including the shares, the cost basis,
- 25:19and this is connected to this user,
- 25:21which is the user I just created. And if
- 25:23I want to check who this is, I can go to
- 25:25profiles here, and I'll see the user ID
- 25:27here as well, and the email address. So,
- 25:29that works. Now, of course, you can
- 25:31continue to build this out, you know,
- 25:32you can change all these pages and make
- 25:35it really, really nice, but I think for
- 25:36the purpose of this demo, I think this
- 25:38is pretty good enough. And now, the next
- 25:39step is how do you actually get this
- 25:42live on the internet, right? Because all
- 25:44of this is still sitting in your local
- 25:45machine, and nobody can access and and
- 25:47nobody can see it except for you. And
- 25:49you want to take all the files that
- 25:50Claude has created for you for this app,
- 25:53and you want to upload that into
- 25:54something called GitHub, right? So,
- 25:56you'll hear this a lot, GitHub. What is
- 25:58GitHub for those of you who are not
- 26:00familiar? GitHub is basically a place
- 26:02where you can store all your code base
- 26:04for your app on the cloud, so you can
- 26:06deploy this on internet. And GitHub is
- 26:09also a place where you can do version
- 26:10control. So, when you're building an
- 26:12app, you got to make more changes, you
- 26:13got to make updates, and when something
- 26:15breaks, you can revert back to the time
- 26:17that everything was working correctly,
- 26:19and you can do that with GitHub here.
- 26:21So, you can think of GitHub like a
- 26:22Google Drive, right? So, if you want to
- 26:23share files with another person, if it's
- 26:25sitting on your computer, nobody can see
- 26:27it, but if you save it on a Google
- 26:28Drive, it's now going to be saved on the
- 26:30cloud, and you can just share it with a
- 26:32simple link. And this works kind of the
- 26:34same way, but for codes, right? Now, you
- 26:36want to create a free account on GitHub,
- 26:37and then you want to create a new repo,
- 26:39right? So, you can click on new, and you
- 26:41want to just name it here.
- 26:43Um so, I can call it market cap app, and
- 26:46then you can choose whether to make it
- 26:48public or you want to keep it private
- 26:50for now. You can do that as well. So,
- 26:51I'm going to keep it private for now.
- 26:53And then, I'm just going to hit create
- 26:55repository. And once that's done, you
- 26:57want to grab this link here. And
- 26:58basically, this is the link to this repo
- 27:00here that you want to give to Cloud so
- 27:02Cloud can upload all the files directly
- 27:04here. So, I'm going to go back to Cloud.
- 27:06I can simply say I'm ready to publish,
- 27:08connect to my GitHub account, and push
- 27:10to this repo. And then, I'm going to
- 27:12just paste the link that I got from
- 27:14GitHub. Now, if you're doing this for
- 27:16the first time, you want to authenticate
- 27:18yourself. It's going to ask you for some
- 27:19keys.
- 27:21And just follow the instructions, but
- 27:23that is just one time. And since I've
- 27:24already connected before, I can just
- 27:25simply do this. And then, I'm going to
- 27:27hit go. All right. So, looks like it's
- 27:28done. 41 files pushed to the GitHub
- 27:31repo. And API keys are not included. So,
- 27:34perfect. So, if I go back to GitHub
- 27:35here, I can see that all the files are
- 27:37actually here. Now, the next thing to
- 27:39do, which is the last piece of the
- 27:40puzzle here, is actually to get this
- 27:42live on the internet, right? And we're
- 27:44going to need web hosting for that. And
- 27:45for this, you can use any web hosting
- 27:47you want. But today, I'm going to use
- 27:48Hostinger, which is currently sponsoring
- 27:50today's video. And I've actually been
- 27:52using Hostinger for years for a lot of
- 27:54the websites that I build. It is up to
- 27:56nine times cheaper than traditional
- 27:57hosting, and you get a free domain for 1
- 27:59year. You get a business email. And the
- 28:01nice thing about this particular hosting
- 28:03is that it automatically connects to
- 28:04GitHub. So, any changes that you make to
- 28:06your code or to your app, it
- 28:08automatically updates on Hostinger
- 28:09without you having to do anything
- 28:11manually. So, I'm going to provide the
- 28:12link for you guys to access this page
- 28:14here. So, once you land on this page,
- 28:16you want to click on view plans. So,
- 28:17you'll see two different plans here,
- 28:19business and cloud startup. Uh you can
- 28:21choose business. It gives you five
- 28:22managed web applications. If you want to
- 28:24build more apps, you can definitely go
- 28:26for the cloud startup, which gives you
- 28:2810 web applications and up to 100
- 28:30websites. And by the way, these plans
- 28:32are not usage-based. It's a fixed
- 28:33monthly cost, so you know exactly how
- 28:35much you'll be paying every single month
- 28:37for this. So, today I'm going to choose
- 28:38the business plan here, and I click on
- 28:40choose plan. And you're going to land on
- 28:41this page where you can pick the period
- 28:43here. Obviously, if you sign up for a
- 28:46longer plan, it's going to be the
- 28:47cheapest. So, I'm going to pick 48
- 28:49months here for $3.99 a month. And then,
- 28:52you also get a free domain here for 1
- 28:54year. So, you can choose any of these
- 28:55domains here. And also, if you use my
- 28:57code Lee Jason, you're going to get
- 28:59additional 10% off the entire plan, so
- 29:01it's even cheaper. Now, you want to hit
- 29:03continue. And once you're here, you can
- 29:05go to websites, and you're going to go
- 29:06to Node.js, and click on deploy your
- 29:09Node.js website in minutes. So, click on
- 29:10get started, and then make sure that you
- 29:12have business web hosting selected, hit
- 29:14continue. And here's the step where you
- 29:16want to connect to GitHub, right? So,
- 29:17it's going to be able to pull all the
- 29:18files from this GitHub account to
- 29:20Hostinger, right? So, I'm going to click
- 29:21on continue to GitHub. And then, you
- 29:23want to authorize this connection as
- 29:24well. And here, you can select all
- 29:26repos, or you just want to select the
- 29:27particular repo that you want to
- 29:29connect. So, in this case, I'm going to
- 29:30click this one, and I'm going to find
- 29:32the one that we just created. So, which
- 29:34is market cap app, right? And I'm going
- 29:35to hit install and authorize. And then,
- 29:37I'm going to verify. And there you go,
- 29:39my repo is now here. I can just click on
- 29:41this and hit continue. Now, once you're
- 29:42on this page, you want to pay attention
- 29:44to this thing called environment
- 29:46variables down here. So, this is
- 29:47basically the API keys that allows you
- 29:49to pull up live pricing, make payments
- 29:52through Stripe, and also connect to
- 29:54Superbase, right? So, you want to add
- 29:55this, and you want to just add the API
- 29:58keys here to each of those services. Or,
- 30:00if you don't want to do this
- 30:01individually, you can just hit import
- 30:03.env file. Click here, and you want to
- 30:05just go to that folder, and it should be
- 30:08in that folder. Now, .env file is a
- 30:10hidden file. So, if you're on a Mac,
- 30:13there's one way to make that visible. We
- 30:15we just do hit command shift and period,
- 30:17and you'll see that the .env file here.
- 30:19So, just click on this file,
- 30:22and then hit open. And then, it's going
- 30:24to automatically populate all the API
- 30:25keys inside of here. And then, you want
- 30:27to hit finish, and then hit deploy. And
- 30:30in just a couple of minutes, it's done,
- 30:31right? So, you can just click on this
- 30:32temporary domain here, and your website
- 30:35is published, right? So, this is a
- 30:37temporary domain, obviously, if you look
- 30:38at the URL here, and you can change this
- 30:41domain to anything you want with
- 30:42Hostinger. And if you share this link,
- 30:44anybody can access this website. And if
- 30:46you even check whether this thing works,
- 30:48yep. So, the live pricing works as well.
- 30:51I can pull up different stocks here, and
- 30:53it's working properly. And one thing to
- 30:55note here, because it's connected to
- 30:57GitHub automatically, and you have auto
- 30:59deployment on here, and what's going to
- 31:01happen is that it when you make changes
- 31:03to your app, and when Cloud pushes all
- 31:05the new files into GitHub, and Hostinger
- 31:07will actually detect that there are
- 31:08changes made to that repo, so it's going
- 31:10to pick it up, and it's going to auto
- 31:12deploy the website to reflect the latest
- 31:14changes. And I think that's a nice
- 31:16feature to have, so you don't have to
- 31:17keep manually deploying your website.
- 31:19So, I hope you guys can see what the
- 31:20basic workflow looks like when you're
- 31:22building an app with Cloud Code. The
- 31:24next time you see someone build an app,
- 31:26you know exactly what all the terms
- 31:28mean, and it's going to be a lot easier
- 31:30to follow. Now, of course, what you see
- 31:31today it's just a demo app, but if you
- 31:32guys want to watch me build a real app,
- 31:35I recently made a video on how I built
- 31:37uh calendar booking app called Calendly,
- 31:39completely from scratch. So, if you want
- 31:41to watch that, you want to click here,
- 31:42and I'll see you guys there.
About this transcript
This page contains the full transcript of How I Vibe Coded a Full App using Claude Code (with Database, Payment, Login) by Jason Lee, generated from the public captions YouTube serves with the video. The transcript has 7,318 words across 997 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.