This is where it gets real. You're going to build something. It won't be perfect. It might be ugly. But it will be yours, and it will be live.
This section walks you through building your first app from idea to working prototype.
Most beginners make this mistake:
They try to build:
- A social media platform
- An e-commerce site
- A complex SaaS product
Result: They get overwhelmed, give up, and never ship.
Vibe coding rule: Start stupid simple. Make it work. Then make it better.
A stupid simple idea:
- Takes 1 sentence to explain
- Has 1-2 core features
- Can be built in a few hours
- Solves 1 specific problem
Examples of stupid simple ideas:
✅ Note Saver
- "An app where users can save notes and see them later"
- Core feature: Save and view notes
- That's it. Nothing else.
✅ Daily Checklist
- "An app where users can create a daily checklist and check off items"
- Core feature: Create and check off items
- That's it.
✅ Idea Tracker
- "An app where users can save ideas and view them later"
- Core feature: Save and view ideas
- That's it.
✅ Resource Bookmarker
- "An app where users can save links to resources they want to remember"
- Core feature: Save and view links
- That's it.
If it takes more than 1 sentence to explain, it's too big.
Your first build should be so simple that you feel almost embarrassed by it. That's perfect.
You're not building the next Facebook. You're building something that works.
Option 1: Use your idea from Section 0
- You already wrote down what you want to build
- Use that, but simplify it
- Strip it down to 1 core feature
Option 2: Pick from the examples above
- Note Saver
- Daily Checklist
- Idea Tracker
- Resource Bookmarker
Option 3: Think of your own
- What's one thing you wish you had?
- What's one problem you face daily?
- What's one tool that would make your life easier?
Then simplify it until it's 1 sentence.
Your first version is supposed to be bad:
- It will be ugly
- It will be messy
- It will be wrong
That's normal. That's expected. That's how you learn.
Vibe coding is not about perfection. It's about momentum.
For vibe coding, we always start in Firebase Studio. This is where we build what I call the "project bones" — the basic structure and skeleton of your app.
Here's the process:
- Go to Firebase Studio
- Create a new project
- Name it something simple (like
my-note-app)
Use prompts in Firebase Studio to get the basic structure:
Example prompts to get started:
- "Create a simple web app structure with HTML, CSS, and JavaScript files"
- "Set up a basic login page with email and password fields"
- "Create a simple form to add notes with a title and content field"
- "Set up a basic page to display a list of notes"
You're not building the full app yet. You're building the bones — the structure that everything else will attach to.
Get a few prompts in to get it moving. Don't try to build everything at once. Just establish the foundation.
This is crucial: Publish your project from Firebase Studio.
- Click "Publish" or "Deploy" in Firebase Studio
- This creates your project folder in Firebase Console
- This is what enables you to configure services
Why publish first? Because this creates your project in the Firebase ecosystem, which allows you to enable all the services you need.
Now go to Firebase Console (the project you just published):
-
Enable Authentication:
- Go to Authentication → Sign-in method
- Enable "Email/Password"
- Save
-
Enable Firestore Database:
- Go to Firestore Database
- Click "Create database"
- Start in test mode (we'll set up security rules later)
- Choose a location (pick the closest to you)
-
Enable Hosting:
- Go to Hosting
- Click "Get started"
- Follow the setup (Firebase will guide you)
This step makes your life much easier later. All your services are configured and ready to go. When you move to Cursor, everything is already set up.
Now sync your code to GitHub:
- In Firebase Studio, click "Sync" or "Publish to GitHub"
- Firebase Studio will ask you to create a GitHub repo
- Enter a repo name (like
my-note-app) - Make it private (don't commit secret keys)
- Firebase Studio automatically creates the repo and syncs your code
Your project bones are now in GitHub, and all your Firebase services are enabled.
Now you're ready to build fast:
- Clone the GitHub repo to your computer
- Open the project folder in Cursor
- Start building with AI
Why this order matters:
- Project bones are established
- All Firebase services are enabled and configured
- Cursor can immediately work with your Firebase setup
- No configuration headaches later
The key: Build bones → Publish → Enable services → Sync to GitHub → Build in Cursor. This order makes everything easier.
The code Cursor generates won't be perfect:
- The styling might be basic
- The structure might not be ideal
- There might be some inefficiencies
That's fine. You're not building perfect code. You're building something that works.
You can always refactor later. First, make it work.
Don't wait until everything is perfect to run it.
As soon as Cursor generates the structure:
- Run the app
- See what works
- See what doesn't
- Fix what's broken
- Repeat
The faster you see it running, the faster you'll understand what you're building.
Step 1: Scaffold
- Ask Cursor to create the basic structure
- Run it
- See what you have
Step 2: Fix
- What's broken?
- What's missing?
- Ask Cursor to fix it
Step 3: Improve
- What could be better?
- What's confusing?
- Ask Cursor to improve it
Step 4: Repeat
- Keep iterating
- Keep improving
- Keep building
You're not building everything at once. You're building, testing, and improving in cycles.
Firebase Authentication handles:
- User sign-up
- User login
- Password reset
- Email verification
- Session management
You don't code this. You configure it.
In Firebase Studio:
- Enable Authentication
- Choose sign-in methods (Email/Password is the simplest)
- That's it
In your app:
- Cursor will generate the auth code
- Users can sign up and log in
- Firebase handles the rest
No deep theory needed. It just works.
Firebase Firestore is a NoSQL database:
- You store data in "collections"
- Each item is a "document"
- Documents have "fields"
Think of it like this:
Collection: notes
Document 1:
- title: "My first note"
- content: "This is the content"
- userId: "user123"
Document 2:
- title: "My second note"
- content: "More content"
- userId: "user123"
That's it. No SQL. No complex queries. Just collections and documents.
In your app:
- Cursor will generate the database code
- You save notes to the "notes" collection
- You read notes from the "notes" collection
- Firebase handles the rest
You don't need to understand:
- How Firebase works under the hood
- Database optimization
- Security rules (yet)
- Complex queries
You just need to know:
- Users can sign up and log in (auth)
- You can save data (database)
- You can read data (database)
That's enough to build your first app.
Your first version:
- Might not have perfect security rules
- Might not be optimized
- Might not scale to millions of users
That's fine. You're building version 1, not version 100.
Get it working. Then make it better.
Here's how it works:
- User signs up/logs in → Firebase Auth handles it
- User creates a note → App saves it to Firestore
- User views notes → App reads from Firestore
- User deletes a note → App removes it from Firestore
Firebase handles the infrastructure. Your app handles the logic.
You don't need to understand everything. You just need to make it work.
Right now, do this (in this exact order):
-
Pick your stupid simple idea (from Lesson 4.1)
-
Go to Firebase Studio:
- Create a new project
- Name it something simple
-
Build the project bones with prompts:
- "Create a simple web app structure"
- "Set up a basic login page"
- "Create a form for [YOUR CORE FEATURE]"
- Get a few prompts in to establish the structure
-
Publish from Firebase Studio:
- Click "Publish" or "Deploy"
- This creates your project in Firebase Console
-
Enable services in Firebase Console:
- Enable Authentication (Email/Password)
- Enable Firestore Database
- Enable Hosting
- Get everything configured
-
Sync to GitHub:
- In Firebase Studio, sync to GitHub
- Create a private repo
- Firebase Studio handles it automatically
-
Clone to Cursor:
- Clone the GitHub repo to your computer
- Open the project folder in Cursor
- Now build fast with AI
-
Keep building and iterating:
- Use Cursor to add features
- Commit changes to GitHub
- Sync back to Firebase Studio when ready
Don't skip steps. This order makes everything easier.
Remember: Build bones first. Enable services. Then build fast in Cursor. Your first version is supposed to be bad. That's how you learn.
Next: SECTION 5 — Shipping (Most People Never Get Here)
Having issues? Check out the Troubleshooting Guide for common fixes.