Instructional Guide · AI Studio → Live App

Your idea, shipped to the internet.

A complete beginner's guide to vibe coding — from setting up your tools to deploying a real, live app.

AI Studio GitHub Vercel Supabase Resend
scroll to begin
01 — The Paradigm

What is Vibe Coding?

Vibe coding is the practice of building software by describing what you want in plain English to an AI — and letting the AI write the actual code. You don't need to memorize syntax, know every framework, or spend years learning programming. You guide the AI with your intent, your taste, and your judgment.

The term was coined by AI researcher Andrej Karpathy. The idea: instead of fighting with code, you vibe with it — you stay in a creative flow, iterating quickly by talking to an AI like a collaborator.

Think of yourself as an architect. You don't lay every brick — you design the building, describe what you need, and your AI contractor builds it. Your job is to have vision, spot problems, and keep iterating until it's right.

Why does it matter?

For the first time in history, anyone with an idea can build software. A teacher can build a classroom tool. A small business owner can build a custom booking system. A designer can build their own portfolio app. The barrier is no longer "can I code?" — it's "can I describe what I want clearly?"

Your New Superpower

Vibe coding doesn't mean you never understand what's happening. The best vibe coders learn as they go — asking the AI to explain things, understanding the big picture, and building real intuition over time.

The Vibe Coding Workflow

💬
Step 1
Describe it
🤖
Step 2
AI generates
👀
Step 3
Preview it
🔁
Step 4
Refine & repeat
🚀
Step 5
Ship it!

What AI Studio Does

Google AI Studio (aistudio.google.com) is where you have your conversation with the AI to build your app. Describe what you want in plain English, and it generates the code files. But here's the thing — generating code is only half the journey. You also need to get that code:

  1. Saved and version-controlled (GitHub)
  2. Published to a real live URL (Vercel)
  3. Connected to a database (Supabase)
  4. Able to send emails (Resend)

That's exactly what this guide will teach you.

02 — Before You Build

Setting Up Your Tools

Before you can build anything, you need a few things set up. This section walks you through each one. The good news: you only have to do this once.

⚡ What you'll need

A GitHub account (stores your code), a Vercel account (publishes your app), and Node.js installed on your computer. You'll also want a code editor — VS Code is the most popular free option.

Step 1 — Create Your Project Folder First

Before opening any tools, create a folder on your computer where your project will live. Put it somewhere easy to find — your Desktop or Documents folder works great.

⚠️

Name it carefully: Use only English letters, numbers, and hyphens. No spaces, no special characters. Good: my-first-app. Bad: My First App!

Step 2 — Install VS Code (Optional but Recommended)

VS Code is a free code editor made by Microsoft. You don't need it to build in AI Studio, but it's extremely useful for viewing your files, editing small things, and running terminal commands. Go to code.visualstudio.com and download it for your operating system.

Think of AI Studio as your architect's desk where you design and build. VS Code is like the site office — you visit it to check on things, make small tweaks, and manage files. Most of your time will be in AI Studio.

Step 3 — Install Node.js

Node.js is the engine that runs your web app locally on your computer. You need it installed before you can preview or deploy anything. Go to nodejs.org and download the LTS version (the one labelled "Recommended for most users").

To confirm it installed correctly, open a terminal and type:

node --version

You should see a version number like v20.11.0. If you see that, you're good.

Step 4 — Install the Vercel CLI

The Vercel CLI lets you deploy your app from the terminal with a single command. Open your terminal (in VS Code: press Ctrl + `, or search "Terminal" on your computer) and run:

npm i -g vercel

Step 5 — Build Your App in AI Studio

AI Studio is where you'll actually build your app by describing what you want. Go to aistudio.google.com, sign in with your Google account, and start a new project. Describe your app in plain English — AI Studio will generate the code files for you.

When your app is ready, AI Studio will let you export or download your project files. Save them into the project folder you created in Step 1.

Tip

Be specific when describing your app. Instead of "make a website," say "make a one-page website with a contact form, a heading that says my name, and a dark background." The more detail you give, the better the result.

Step 6 — Run Your App Locally

Once your project files are in your folder, you can preview the app on your own computer before deploying it. Open a terminal, navigate to your project folder, and run:

npm run dev

Then open your browser and go to http://localhost:3000. You'll see your app running live. Every time you save a file, the browser updates automatically — this is called hot reload.

"Localhost" just means "this computer." Your app is running locally — visible only to you, not the internet yet. Think of it as a dress rehearsal before the real show.

03 — The Concept

What is an API?

API stands for Application Programming Interface. It sounds intimidating, but the idea is beautifully simple: an API is a way for two pieces of software to talk to each other.

Imagine a restaurant. You (the customer) don't walk into the kitchen and cook your own food. Instead, you tell a waiter what you want. The waiter goes to the kitchen, gets your food, and brings it back. The waiter is the API — a middleman that takes requests and returns results, without you needing to know how the kitchen works.

A Real Example

When your app needs to send an email, it doesn't manage mail servers itself. Instead, it calls Resend's API and says: "Hey Resend, please send this email to this address." Resend handles all the complexity and replies: "Done! Here's confirmation."

How APIs Work in Practice

Every API call has a few key parts:

Endpoint

The URL you send your request to. Like https://api.resend.com/emails. Think of it as the restaurant's address.

Request

What you're asking for — and any data you're sending along. Like your order to the waiter.

API Key

A secret password that proves you're allowed to use the API. You get this when you sign up for a service.

Response

What the API sends back — usually data or a confirmation. Like your food arriving at the table.

🔑

API Keys are passwords. Never share them publicly, never put them directly in your code files, and never post them on the internet. This is one of the most common (and costly) beginner mistakes. We'll cover the safe way to handle them in the next section.

04 — The Safety Layer

Environment Variables

Now that you know API keys are secrets, here's how you actually keep them secret: environment variables.

An environment variable (or "env variable") is a value that lives outside your code — in the environment where your code runs. Your code can read it, but it's never written into the code files themselves. This means it never gets accidentally shared.

Think of your code as a recipe. The recipe says "add 1 tsp of SECRET_SPICE" — but it doesn't say what that spice is. The actual spice is written on a separate locked card that only the chef (your server) can see. The recipe is safe to share. The spice card stays private.

What They Look Like

Env variables live in a file called .env (or .env.local) in your project folder. It looks like this:

# .env.local — this file stays on YOUR computer, never uploaded

NEXT_PUBLIC_SUPABASE_URL=https://yourproject.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6...
RESEND_API_KEY=re_abc123yourKeyHere
DATABASE_URL=postgresql://user:password@host/db

How Your Code Reads Them

In your code, instead of writing a secret directly, you write:

// ❌ WRONG — never do this
const apiKey = "re_abc123actualSecretKey";

// ✅ CORRECT — reference the variable name
const apiKey = process.env.RESEND_API_KEY;

The .gitignore File

Your project will have a file called .gitignore. It tells GitHub: "Do NOT upload these files." Your .env.local file must always be in there.

# .gitignore
.env
.env.local
.env*.local
node_modules/

Where Do Env Variables Live When Deployed?

When your app is live on Vercel, the .env.local file isn't there — it only exists on your computer. Instead, you enter your environment variables directly in Vercel's dashboard under Project Settings → Environment Variables. Vercel keeps them secure and injects them when your app runs.

The Golden Rule

Secrets go in .env.local on your machine, and in Vercel's Settings dashboard when deployed. They never go directly into your code.

05 — Version Control

What is GitHub?

🐙

GitHub — Your Code's Home

GitHub is a website that stores your code online, tracks every change you've ever made, and lets you collaborate with others. Think of it as Google Drive — but specifically designed for code, with a powerful history of every edit.

Imagine writing a novel where every time you saved, you could add a note like "Chapter 3 — added villain backstory." One month later, you could scroll back through every single save and restore any version. That's what GitHub does for your code. It's a time machine with labels.

Key Concepts

Repository (Repo)

A folder on GitHub that holds all your project's files and their complete history. One project = one repo.

Commit

A saved snapshot of your code at a specific moment, with a message describing what changed. Like a "save point" in a video game.

Push

Uploading your local commits from your computer to GitHub. Like syncing your files to the cloud.

Branch

A parallel version of your code where you can experiment safely without breaking the main version.

Why GitHub Matters for Deployment

Here's the magic: Vercel watches your GitHub repo. Every time you push new code to GitHub, Vercel automatically sees it and re-deploys your app. You never have to manually upload files. Your workflow becomes:

✏️
You
Write code
💾
Git
Commit it
🐙
GitHub
Push it
Vercel
Auto-deploys
🌐
Live
App updated!

Setting Up GitHub — Step by Step

1

Create a free account

Go to github.com and sign up. Choose a username you're comfortable with — it may appear in your app's URL at first.

2

Create a new repository — click the + button

In the top-right corner of GitHub, click the + button, then choose "New repository" from the dropdown.

github.com
Search...
+ ▾
✦ New repository
New gist
New organization
A
Click the + button → select "New repository"
3

Fill in the repository form

Give your repo a name (e.g. my-first-app). Set it to Private. Do not check any of the "Initialize" options — leave them all blank. Then click "Create repository."

github.com/new
Create a new repository
my-first-app
✓ my-first-app is available
🔓 Public
Anyone on the internet can see this repository
🔒 Private
You choose who can see and commit to this repository
⚠️ Do NOT check "Add a README file" or any other options here — leave everything blank. You'll be uploading your own files.
Create repository
Name your repo, set to Private, leave everything else unchecked
4

Copy your repository URL

After creating the repo, GitHub shows a setup screen. Click the HTTPS tab and copy the URL — it looks like https://github.com/yourusername/my-first-app.git. You'll need this to connect your project.

github.com/yourusername/my-first-app
🐙 yourusername / my-first-app Private
Quick setup — if you've done this kind of thing before
HTTPS
SSH
GitHub CLI
Copy this URL — you'll need it
https://github.com/yourusername/my-first-app.git
📋
…or push an existing repository from the command line
git remote add origin https://github.com/yourusername/my-first-app.git
git branch -M main
git push -u origin main
Make sure HTTPS is selected, then copy the full URL
5

Upload your project files

On the empty repo page, click "uploading an existing file" (the blue link in the setup instructions). Drag and drop all your project files in. Add a commit message like "initial upload" and click Commit changes.

6

Make future commits

After making changes to your code, return to your repo, upload the updated files, and commit again. Good commit messages — "add contact form" not "stuff" — will save you when something breaks.

Habit to build now

Commit often. Commit every time you finish a meaningful chunk of work. Good commit messages — "add contact form" not "stuff" — will save you hours when something breaks.

06 — Hosting & Deployment

What is Vercel?

Vercel — Your App's Launch Pad

Vercel is a hosting platform that takes your code from GitHub and publishes it to the internet — automatically, instantly, and for free. It gives your app a real URL that anyone in the world can visit.

GitHub is like your manuscript saved on your computer. Vercel is the printing press and bookstore combined — it takes that manuscript and puts it in front of the world. And every time you update the manuscript, the bookstore automatically updates its version.

What Vercel Does For You

Vercel handles all the hard infrastructure so you don't have to think about it:

Deploying to Vercel — Step by Step

1

Create a free Vercel account

Go to vercel.com and sign up. Use the "Continue with GitHub" option — this links your accounts together automatically.

2

Import your GitHub repo

Click "Add New → Project". Vercel will show your GitHub repos. Find your project and click "Import."

vercel.com/new
New Project
Import Git Repository
🐙 my-first-app
Updated just now
Import
another-project
3 days ago
Import
old-website
2 weeks ago
Import
Find your repo and click Import
3

Add your environment variables

Before clicking Deploy, scroll down to "Environment Variables." Add each key-value pair from your .env.local file here. This is how your live app gets its secrets securely.

vercel.com/new — Configure Project
Environment Variables
Add the secret keys your app needs. These are never exposed publicly.
NEXT_PUBLIC_SUPABASE_URL
https://abc.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY
eyJhbGci••••••••
RESEND_API_KEY
re_abc123••••••
Key
Value
+ Add
Deploy
Add every key from your .env.local file here before deploying
4

Click Deploy!

Hit the Deploy button. Vercel builds your app (usually 30–90 seconds) and gives you a live URL. Share it with the world. 🎉

5

(Optional) Rename your domain

Your default URL will be something like my-first-app-abc123.vercel.app. You can shorten it in Project Settings → Domains.

vercel.com/dashboard/project/settings/domains
Domains
Add a custom domain or change your vercel.app subdomain.
my-first-app.vercel.app
Add
my-first-app.vercel.app
● Valid Configuration
Primary
Settings → Domains — change your URL to something cleaner
From now on

Every git push to your main branch automatically triggers a new deployment. Your live site updates within a minute of pushing code. No extra steps.

🚨

Important — watch for this during CLI deployment: The terminal may ask Enable Vercel Authentication? (y/N). You must type n and press Enter. If you accidentally select yes, your site will only be visible to you — not the public. If this happens, go to your Vercel project settings and disable authentication.

07 — Your Database

What is Supabase?

🔷

Supabase — Your App's Memory

Supabase gives your app a real database — a place to permanently store and retrieve data. Users, posts, orders, settings — anything your app needs to remember lives here. It's like a giant, always-on spreadsheet your code can read and write to.

Your app without a database is like a whiteboard — it can show things while you're looking at it, but erases everything when you leave. Supabase is the filing cabinet behind the whiteboard. Information goes in, stays in, and can be retrieved any time by anyone, from anywhere.

What Supabase Gives You

Setting Up Supabase — Step by Step

1

Create a free account

Go to supabase.com and sign up. Click "New Project," name it, choose a region near your users, and set a strong database password (save it somewhere safe).

2

Get your API keys

In your project, go to Settings → API. You'll find two keys: your Project URL and your anon public key. Copy both.

3

Add keys to your .env.local

Add these to your local env file:

NEXT_PUBLIC_SUPABASE_URL=https://yourproject.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...
4

Add the same keys to Vercel

In your Vercel project, go to Settings → Environment Variables and add both Supabase variables there too, so your live app can connect.

5

Create your first table

In Supabase, go to Table Editor → New Table. Give it a name and add your columns. Your AI assistant can generate the exact SQL to run in Supabase's SQL editor to set up tables for you — just describe what data you want to store.

Pro Tip

Ask your AI: "Generate the Supabase SQL to create a table for [your use case]." It will write the exact commands. Paste them into Supabase's SQL Editor and click Run.

08 — Email Delivery

What is Resend?

📬

Resend — Your App's Email System

Resend is an email API that lets your app send real emails — welcome messages, password resets, notifications, receipts. You can't use your personal Gmail for this at scale, so Resend acts as a professional mail-sending service your code can call.

You wouldn't personally hand-deliver every letter your business sends. You'd use a postal service. Resend is that postal service for your app's emails — you hand it the message and the address, it handles delivery, tracking, and making sure it doesn't end up in spam.

Setting Up Resend — Step by Step

1

Create a free account

Go to resend.com and sign up. The free tier lets you send 3,000 emails/month — more than enough to start.

2

Get your API key

In the dashboard, go to API Keys → Create API Key. Name it (e.g., "my-app-key"), click Create, and copy the key immediately — it's only shown once.

3

Add it to your env file

RESEND_API_KEY=re_yourKeyHere123

Then add the same variable in Vercel's Settings → Environment Variables.

4

(Optional) Add your domain

For production, go to Domains → Add Domain and follow the steps to verify your domain. This lets you send from [email protected]. For testing, Resend gives you a default sending address.

⚠️

Important: The Resend API key should only be used on the server side of your app — never in code that runs in the browser. Your AI will know this, but it's worth understanding: RESEND_API_KEY (without NEXT_PUBLIC_) stays on the server only.

09 — The Mindset

Errors Are Not Failures

Here's something nobody tells beginners: every developer sees errors constantly. Errors are not a sign that you're doing something wrong — they're just the computer telling you something needs adjusting. With AI as your partner, errors become conversations, not roadblocks.

The most important mindset shift

You are not here to learn to code. You are here to build something real. The AI handles the syntax. Your job is to describe, review, and iterate. Errors are just part of that conversation.

The Four Error Situations (and what to do)

💬

The AI misunderstood you

It built something different from what you wanted. Just say so: "That's not quite what I meant. What I actually want is ___" and re-explain. Be more specific this time.

🔴

A red error message appeared

In your terminal or browser. Don't panic — this is actually great information. Copy the entire error message and paste it into the AI chat with: "Fix this error." The AI knows exactly what it means.

Something just isn't working

No error message, but the behaviour is wrong. Describe what you expected vs. what's actually happening: "When I click the button, nothing happens. It should submit the form."

The terminal is asking you a question

You'll see something like Continue? (y/N). The uppercase letter is always the default — pressing Enter selects it. If you're unsure, just press Enter and ask the AI afterwards if you chose correctly.

Using the Browser Inspector

The browser's built-in developer tools are your debugging best friend. Right-click anywhere on your app's page and choose "Inspect" (or press F12). Click the Console tab — any errors your app is throwing will appear here in red.

When you see a red console error: select it, copy it, paste it into Cursor's AI chat with "fix this." Nine times out of ten, the AI solves it instantly.

The AI is your senior developer sitting next to you. You don't need to understand every error — you just need to show it to them. "Hey, I got this — can you fix it?" That's a completely valid workflow.

The Magic Phrase

Once your app is working and you're ready to save your progress and update the live site, run these three commands in your terminal (or ask VS Code's terminal):

# Save your changes to GitHub
git add .
git commit -m "describe what you changed"
git push

# Then redeploy (if not auto-deploying)
vercel --prod

Make this a habit every time you finish a meaningful change. Your live site will update within about 30 seconds.

10 — The Full Picture

How It All Fits Together

You now know every piece. Here's how they connect in your live app:

💬
AI Studio
Build your app
🐙
GitHub
Store your code
Vercel
Publish to web
↓ your live app connects to ↓
🔷
Supabase
Database + Auth
📬
Resend
Send emails

The Complete Deployment Sequence

Here is the exact order of operations for your first deployment:

1

Build your app in AI Studio

Describe what you want, iterate, and get to a version you're happy with. Don't aim for perfect — aim for working.

2

Set up Supabase & Resend first

Create your accounts, get your API keys, and set up any tables you need. You need the keys before you can configure anything else.

3

Create your .env.local file

Add all your API keys to .env.local. Test that your app works locally with these keys.

4

Push to GitHub

Make sure .env.local is in your .gitignore. Then commit and push all your code files to your GitHub repo.

5

Import to Vercel & add env vars

Import your GitHub repo in Vercel. Before you click Deploy, add every key from your .env.local into Vercel's Environment Variables settings.

6

Deploy and verify

Click Deploy. Wait for the build. Visit your live URL. Test every feature — forms, auth, emails. If something's broken, check your env vars first (this is almost always the cause).

11 — Launch Checklist

Your Pre-Flight Checklist

Before you share your URL with anyone, go through every item below. Print this out or work through it on screen.

✅ Environment Setup

  • Project folder created (English name, no spaces)
  • VS Code installed (optional but recommended)
  • Node.js installed — confirmed with node --version
  • Vercel CLI installed — npm i -g vercel
  • App built in AI Studio and project files downloaded
  • App running locally on localhost:3000

✅ GitHub

  • GitHub account created
  • New private repo created for this project
  • .gitignore includes .env.local and node_modules/
  • All code pushed to main branch
  • Repo does NOT contain any API keys or passwords

✅ Supabase

  • Supabase project created
  • Database tables created and tested
  • Project URL and anon key copied
  • Keys added to .env.local locally
  • Keys added to Vercel Environment Variables

✅ Resend

  • Resend account created
  • API key created and copied immediately
  • RESEND_API_KEY added to .env.local
  • Same key added to Vercel Environment Variables
  • Test email sends successfully

✅ Vercel

  • Vercel account created (via GitHub login)
  • Project imported from GitHub
  • All environment variables entered in Settings
  • First deploy completed without errors
  • Live URL tested in a browser
  • Subsequent push to GitHub triggers auto-redeploy
You shipped something real.

If you've made it through this checklist, your app is live on the internet. That's not a small thing. Most people who want to build something never do. You just did. Now keep going — iterate, add features, share it. The hardest deployment is always the first.