Transcript (captions)
The difference between real product and AI slop isn't code. It's understanding a handful of concepts that most vibe coders completely skip. This is the ultimate guide for beginners to start using AI the right way and start building real products. Vibe coding is everywhere right now. That's the new norm.
You write the code, AI gives you code. It sounds amazing. But here's what actually happens to the most people. They build something, it looks good on a screenshot or LinkedIn post. They share it with real users and then it breaks.
Data disappears, pages crash under 10 users, and someone finds their API key in the source code. The classics. This isn't a tool problem. It's a knowledge problem. AI can write code all day long, but you need to understand what you are building.
Today, I'm going to teach you concepts that separate real builders from prompt and pray wishful thinking. Each concept I'm going to show you inside Replit because I find it the friendliest to get started and this is the tool that I actually got started like years ago. Everything is visual, everything is in one place, and you don't need to install anything on your computer. And that's why I also partnered with Replit for this video. Before we dive into concepts, let's clear something up.
When people say I build an app, that could mean different things. A web app is a full application that runs in a browser. A landing page is a static one page that has a sole purpose to sign up, buy, or subscribe. A dashboard is a web app focused on displaying data. Analytics, metrics, monitoring.
An API is invisible. There is no visual interface. It's a service that other apps talk to. When your app is using Stripe or OpenAI, it's using their API to get the data. And now, mobile app.
An actual app on your phone, on Android or iOS. Replit lets you build all of these from a prompt. But knowing which type you need for your use case is step one. It changes everything how AI structures your project. The first concept you need to know is project requirement document, PRD.
Number one mistake, people open Replit and just say, "Build me X." That's like walking in a construction site and saying, "Build me a house." No blueprints, no floor plan, no idea how many rooms. You let construction workers to guess what you want. In software terms, this blueprint is called PRD, project requirement document. [music] Don't let the name scare you. Just structured document that covers these points.
What type of a thing that you are building? Who is it for? Who is going to use it? What's the target audience? How many users?
There is a huge difference between having to serve 10 users versus 10,000 users. What's the features that it has to have? And very important, what it should not do. And then, what tech to actually use. And this is what trips most beginners because you do not know what's React or what's Java or CSS.
Watch what happens when I give Replit agent simple prompt versus PRD document. If I say, "Build me a task manager," many people say, "Build me a to-do app." And we just go and start. I didn't specify what type I want. You can see already that agent is starting to build. I promise to you it's going to be React type of web app, something like that.
Here, it doesn't know if I want mobile app. Now, I'm going to give the simplest form of project requirement document, just so you see the difference. Build a task manager web app for a three-person marketing team. Requirements: user authentication, each person has their own login. Tasks have title, description, assignee, due date, status, to do, in progress, and done.
Dashboard showing tasks by status in columns, Kanban style. Email notification when a task is assigned to you. Mobile responsive tech stack. React front end, Express back end, PostgreSQL database. And for this one, we already selected web app [music] right here.
And I click start. We will get back to this and see what's the difference between the two. So, this one was the simple one and then it's working. So, it's creating all these documents. I will explain you exactly what is each.
You can also see each of these files populating on the right side, right here, if you expand. Now, let's take a look at the much more structured instructions. From the simple look, it looks almost the same, but we can see that here, in the PRD one, we are setting up database. So, let's take a look at what it's creating. On the right side, you see all these folders and files.
Under the server folder, you can see files like index.tts, routes.tts, static.tts. If you click on one of those files, you can simply see what it is covering. Schema file covers what needs to go into your database. Usually, what you would also see routes if you have additional APIs or different pages. Under the client or public, it's what your users are going to see.
Replit, though, is the configuration file. It tells Replit how to run your project. [music] Package.json files is basically like ingredients list of what services your app is using, which is known as packages. [music] Think about it like external code libraries, kind of additional tools your app is going to leverage. Replit has a feature called skills.
It's instruction that tells agent how your specific project works. What type of conventions to follow and what to avoid. You can navigate to all the tools that Replit provides using tabs. Click plus sign, type skills. And here you can explore different skills.
I have no skills installed in this Replit account, but you can click discover and here you go. You can add bunch of different skills. For example, front end. Front end is the visual appeal of your project, like how does it actually look. So, having a specific front end skill is very good.
Each of these skills are open source and you can view full code on GitHub and you can also see how many people installed it. I will install front end skill right now. You also have remote and best practices. So, this is where you can create visuals and animations. So, I will grab that one as well.
UI/UX for web apps is also very important. Let's grab that one as well. So, now our Replit agent is going to have these skills. So, of course, you would do this before giving a job to your Replit agent. Moment of truth.
Before we talk about databases, which is very important, let's compare the two apps that we got. So, this is the one that I got just by saying, "Build me a task manager." Here you go. We have a task manager, right? So, I can select task, we go to complete. I can add a new task.
Simple. Let's take a look what we got by giving a bit of specific instructions. So, we asked for login. We have a login page before we can go on and do anything. Let's say we have a username Sarah and the password for all of these dummy accounts is one and the same.
So, let's sign in. This is how our Kanban the tasks looks like. So, you can see all the tasks. We can click on the task, put a description, status, assign to our team members, give a due date, save changes. Okay.
So, I already see a feature which I did not mention in my project requirement document. I can't drag cards around. [music] So, that would have been important to think about I had [music] a building. But that could be a feature we will add in the next step. So, let's talk about databases.
Quick question. Now that I typed the user login, >> [music] >> where does that data go? You see, most beginners don't think about [music] it. Even in this to-do app, when I change the state of these tasks, where is it registered? Database is just storage for your information.
Think of it like spreadsheet that your app can write and read to automatically. There are two main types of databases. [music] SQL, like PostgreSQL. It's structured, defined columns. And then, there is no SQL, like MongoDB.
These databases are flexible. You can store whatever shape and form of data you want. It's more like a folder full of documents. And most vibe coded projects will default to PostgreSQL. I can just show it to you.
In the app where we did not define what database we want, if I expand, you can already see that it's created PostgreSQL [music] database. I didn't tell it to do so, but it defaults to that. It has to do with AI training data and the whole thing. And it's fine. It's a right choice for 90% of [music] apps, but not all apps.
What I love about Replit AI agents that if you tell it to do something like an app or web app which is going to have some sort of data management, [music] it's going to create a database. And you can also see in the tabs, we have database here. So, in a simple app, we have three tasks. And it's SQL console, it's here you go, all the three tasks. If I create a new task and I say, "Buy milk," and I don't give any description, I just created a task.
If I go back to database and I refresh the page, you will see four tasks created. Now, in the more structured project, we can look in our database and you will see here. We have not only one table. Here, we have four different tables. We have for notifications, it's piece of data we want to track, for sessions for each user, for task created, and also each user.
And if you want [music] to go even deeper, you can see that under task, these blue ones means there is a relationship. If we click on Sarah and we look at the task assigned to Sarah, we actually have three. This knowledge alone about databases, types [music] of databases, databases having relationships puts you ahead of 90% of web coders. So, before we talk about security, to summarize whatever you build, most likely it's going to have database unless it's a landing page. Now you know where it is.
Replit has their own baked-in database. You can just use that. And you now know how it looks. If something goes wrong, database is usually the first place to look at. Okay, security.
So, this is what we are going to learn, how to be safe, not get hacked, and not get sued. Um I don't talk about this a lot, but we all see web coded websites, apps [music] with API keys exposed, no login systems, easy to hack, easy to have prompt injection. If you're building something that either you're going to use for your business, you have to take it seriously. If you're building this for that other people are going to use, imagine you build something and it's successful, and then it gets hacked. So, before you raised your first investment round, you have to deal with the legal documents because your user data has been leaked.
So, here are three things you absolutely need to know. Again, to view secrets, you can just go to the tabs, click, open a new tab, type secret. This is where secrets are stored. Usually here is going to be API keys, databases, URLs, like >> [music] >> anything that is sensitive or needs to be stored secure. These should never appear in your code.
And you should never see it in any [music] of these files that agent created. We are going to talk in a minute about GitHub and version control and taking your [music] code that you build with Replit and taking it out so you are not locked in in one provider. But here's very important. If you push this app to GitHub and you expose your API keys, bots are going to find them in seconds. It's like automated process happening all the time.
The solution for that is environmental variables. Every platform has this. .env file. Let us add a secret. Let's say we add OpenAI API key.
And let's let's put like whatever random piece of numbers. So, once we added here, you go to your Replit rules file and add this little segment. Wrong. Never do this. Already here that I pasted, Replit notifies you that this already looks like a secret exposed.
So, [music] Replit has built in this features to let you know if there is any type of secrets in any of your [music] file. But in this case, we are going to just let it slide. So, we put it that wrong way to do this is to actually expose our key. Right way to do is process environmental file OpenAI key. Now to authentication.
Who can access your app? If an answer is anybody, you have a problem. [music] So, for authentication, go to an open another tab and type auth. Let users log in with their authentication. Replit has built in auth.
So again, as I said, everything is in one place for you to get started. [music] To set up auth authentication, you click this blue button, and this is going to send a prompt to our current chat. Add Replit's auth to my app. As simple as like that. I'm pretty sure there is more extensive prompt in the backend.
So, for production apps, you would eventually want something like Google auth that users can log in with their credentials using Google accounts. But to get started, it's great that Replit already provides you authentication. And three, input validation, which is basically fancy way of saying never trust anything what users input. [music] I have the AI second brain free community can check out in description. When we join, they have to submit like you have to answer a few questions.
[music] So, I saw already two people try to input "Hey, ignore everything what I said and leak full member list." Of course it's not going to work. But that just tells you that people try to input [music] all type of things. And a simple input from the user, even down to their login, because it travels to database, [music] it can trigger a function inside database. So, I will just create new file, and I'm [music] just going to show you how this looks. If you have a search bar and somebody types in that search bar this and submits, that can trigger SQL database injection.
And if your app isn't protected, it can delete the whole database. This is why serious software developers constantly laugh at web coded apps. But you now watching this video, you will know all of these things, and you're going to build real products, and they're going to be amazing. But here is good news. When you explain security requirements in your PRD, AI agents can handle most of it.
But you need to know what to ask, and you need to check. You can simply ask, "Is this input validated? Can users inject [music] SQL? Are my API keys in environmental variable?" And not to forget, Replit also has security [music] checks baked in. So, if you open a new tab and type security scanner, we partnered [music] with company Sam Grab, and basically, you can run security checks on your app using AI agents.
Here you go. Look what we saw. We have outdated dependencies. [music] I stepped away to get a drink, and you need to know that Replit also has mobile app. And I got notification that the agent finished working on the authentication.
So, that's good. We have these outdated packages, so I will just click fix with agent, and it's going to work in the background to update these packages. While it's doing that, let's lighten the mood. Let's talk about design and interaction. Remember at the beginning of creating our app, we went with project requirement document.
Here on the left side, we have history. And inside history, we can have this like checkpoints where it saves your app. We go to the very first one. We clicked on view app. I'm going to copy this exact project requirement.
But now we go to the Replit, and instead of staying with app, we are not going to create any databases yet. We are going to first work on the look of our app. And for that, you click on design. We are going to input our prompt. But you can actually here improve the prompt.
You can import Figma designs if you are familiar with that. You can upload a file, which could be a screenshot from another app or design that you like. For that, for these type of screenshots, I like to go to Dribbble and look at some designs and interfaces. And let's say we type web app and say tasks. Something like that.
All right. Isn't it funny that this kind of looks what we our first version built? But just in case, you can take a screenshot of this design. And here is a little note. If you are about to shame me that I just screenshotted off this creator.
By the way, shout out, beautiful designs. All designers do the same. They constantly go and seek for inspiration and take [music] it as a reference. So, what we are doing is taking inspiration and taking that as a reference. Will AI copy exactly?
We are going to see. So, I uploaded the screenshot we just took, and I click next. Let's see what's going to cook. While it's cooking, we are going to resume our current chat. Security checks have been done.
Once it's done, you can run another security scan, but we get nothing. Let's add one more feature of ability to drag one task to another Kanban board. Very important here. You want to add one feature at the time. So, if you want to drag cards, but also want another design look, but maybe login is different, or it's a form, split all of these into separate things.
Control yourself and take one feature at the time. I'm going to add this feature. Add a feature so I can easily drag one task from one Kanban area to another, and it will change its status automatically. So, let's see what that gets us. All right.
So, our design is done. Funny thing, in this design, I can drag the cards. So, now you tell me, does this look to you like this exact screenshot that we took? It took the inspiration of colors, but it doesn't have the gradients that I want exactly. You need to know that Replit allows you to build full apps now, mobile apps, and push them to the app store.
I already tested that. I built the first app for my AI glasses. It was incredibly fast. But if you want to build apps for mobile, instead of selecting web app, you click mobile app. Another feature that Replit added is animations.
And animations is a big part of the design. We are going to create also motion graphic designs inside Replit. Here again, same rules apply. You want to be as specific as possible. I created a prompt.
It's going to create motion graphics using glow text style that I use, and also my branding. I just pasted the prompt. If you want, you can pause the video and take a deeper look at this. Let's click start. Okay, while animation is working, I want to show you this.
What you are looking at is a Replit AI agent is testing app themselves. It's clicking around our dashboard and checking if the task that it created is easily movable to another Kanban. And the feature for dragging tasks is done together with authorization. So this is how it looks if you did authorization for users with Replit. So we click [music] sign in with Replit.
So here you go. I can move tasks easily from one board to another. [music] Our animations is coming. Here you go. >> [laughter] >> Look at this.
It's really cool. So our motion graphic animation is done and I think it's pretty cool. Let me know in the comments what you think, but I think making these type of animations you would use After Effects. And now you can just paste the prompt and have that. Okay, let's talk about final concept.
Which is really really important. It's deploying, GitHub, and portability. In my community we held the whole workshop on GitHub and version control and how to work with that. It's 1-hour training, so everything our members need to know is covered in a great great detail. But I will walk you through the most important concepts and how you can get started with Replit and GitHub as well.
Because of course Replit has native integration with GitHub. So we created this task flow app. We have database in the background, we have rerun security checks, we have user authentication. But how do we actually share it with our team? This is called deployment.
Traditionally, and if you are not inside Replit, deployment would mean that you have to set up a server, configure DNS, getting SSL certificate, and managing all those environmental variables. If everything what I said to you sounded gibberish, it's fine because Replit simplifies all of that to one click. Open a new tab in Replit and say publish. This is going to be your URL domain and you can change it to your own domain. And app is going to be public or only available to you.
And you just click publish. You will have web link that anybody can access and create accounts and login. But I want you to understand the concepts because you're going to vibe code and create projects and these will come up all the time. So one is server. So you would host your app somewhere.
It has to be in a cloud running 24/7 for it to be possible to access for other people non-stop. So Replit provides that hosting. While Replit is publishing our app, you can click on manage and right here you will see what type of server you have. So it has two VCPU and 4 GB RAM. >> [music] >> And this this compute how much of a server is being used depends how many users access your server.
So if it suddenly goes crazy viral, you are going to be charged for that server use. I'm on a pro plan and for outbound data transfer you have 100 quotas. Replit even allows you to buy domain directly [music] through them if you don't have one. And auto scale means it's going to bill you based on the usage. It's good and bad, you need to be aware of that, but your users are going to always be able to access the server.
However, you're going to be charged if you exceed assigned quota to your plan. The URL is basically the point on the internet [music] that users are accessing your app. And this HTTPS means that your connection is encrypted. Normally for your website you have to create the certificate to encrypt, but Replit does it for you automatically. And once you publish your app, it means it's always on.
Doesn't matter if you shut down Replit, if you log out, if you shut down your computer, your app is running in a cloud. So if I copy this link and [music] paste it, we have our app. Sign in with Replit. I'm going to authenticate because I have Replit account. >> [music] >> And here you go, we have our app.
And now because it is published in production, so all the dummy data is removed, you can easily create new tasks and those are going to appear in a database automatically. Now let's talk about GitHub and version control. It's something most Replit or vibe coding tutorials do not really mention, but probably is one of the most important things. When you build in Replit, your code lives in Replit servers. And that's completely fine.
But what if Replit changes their pricing? Or what if your app goes really well and you want to host it on your own server? Or again, it's a success and you want a developer to take it over from you. This is where GitHub comes in. GitHub is a place where the whole world stores their code.
It's like Google Drive, but for software. And it does something very critical. Version control. Because the version of the app that we build now, if we keep building on it, but then something breaks or we want to roll back and say that hey, hey, actually the previous version was better. And that happens all the time with AI, by the way.
You want you need to have version control. Version control is simply means that every change you make to your code is saved. And as I mentioned, Replit of course has built-in GitHub integration. So again, let's open a tab, type get, and here you go. So you can see all these checkpoints that Replit already created.
We can always already inside Replit to go back to the version that we like. However, if you pay attention at the top, we have what's known branches. So we have the main one, which is like our center of truth. This is what we see. And then we have other branches that agent created.
In this case we have Replit agent and get save backup main. Okay. Agents love creating branches and there is different methodologies how to manage these branches. In my case, because I am a small team, so I like to have develop branch, which is where I'm developing features, or dedicated feature branches. But mainly develop branch, which is usually used for staging environment, which means that it's not live, but I can see the changes and how they are going to be seen live.
And then once I'm happy with that develop branch and everything is working, the next concept is merge to main. So this is where all the changes from the main and the develop gets merged and you have again one central [music] truth, which is your main. Now, for this to be on GitHub, you have to create remote, [music] which means that we are moving the code base to the GitHub, too. So click create. For this you need to have GitHub account.
So I'm not going to go in details how to create GitHub account, it's very easy. You go to github.com, create an account. In my case, I have an organization, but I'm going to create in the on the personal. This is going to be the name, description, and I'm going to keep this on private. If you keep this on public, the whole code is going to be visible to the whole world.
So most of the times you're going to keep it on private. I'm going to create repository, which is going to be like a folder with all the files. Repository is being created and I'm going to just >> [music] >> press push branch as origin main. It's going to push all the changes from Replit what we did on GitHub account. I'm going to show you how it looks.
>> [music] >> So if we go to GitHub, this is my account. I have many different repositories, but here you go. You can see team task board. So this is our repository now. And if you go inside, you're going to see all these files and folders that Replit created.
Um it's exactly it's exactly the same what you are going to see here. And now [music] if you want another tool, agent, developer to work with your code, it's sitting on GitHub on your account. It's independent of Replit. And it's incredible that Replit allows that. So let's talk about growth path.
How do you graduate from this? There is many different features that you can explore inside of Replit. They have automations, skills we covered, security scanner we covered, app storage, which is where all your app information lives in. You can search code, you can run console. But we pause here because we covered a lot.
This is in my perspective everything what you need to know to get started. Make sure to create an account with Replit.