Cursor is where the magic happens. It's not just a code editor. It's an AI co-builder that understands your entire project and helps you build faster.
This section shows you how to use Cursor like a pro (even if you're a beginner).
The old way (ChatGPT):
- Copy your code
- Paste it into ChatGPT
- Ask a question
- Copy the answer
- Paste it back
- Hope it works
- Repeat
The Cursor way:
- Ask a question in your editor
- Cursor understands your entire codebase
- It edits files directly
- You see the changes immediately
- You keep building
Cursor is AI inside your codebase, not AI in a separate window.
Here's what makes Cursor different:
Context awareness:
- Cursor sees all your files
- It understands your project structure
- It knows what you're working on
- It suggests changes that fit your codebase
Direct editing:
- Cursor edits files directly
- No copy/paste
- No context switching
- You stay in the flow
Project understanding:
- Cursor knows your dependencies
- It understands your file structure
- It suggests improvements based on your code
- It's like having a senior developer who knows your entire project
Example:
You're building a note-taking app. You ask Cursor:
"I want users to be able to edit their notes."
Cursor:
- Looks at your existing code
- Sees how you're saving notes
- Understands your data structure
- Adds an edit function that matches your style
- Updates the UI to include edit buttons
- Does it all in context
You don't explain your entire project. Cursor already knows it.
Think of Cursor like this:
You (the thinker) Cursor (the builder)
───────────────── ────────────────────
"I want X" → "Here's the code for X"
"Change Y" → "Updated Y in 3 files"
"Fix Z" → "Fixed Z, here's what changed"
You describe behavior. Cursor writes code.
Bad prompt: "Write code for authentication"
Why it's bad:
- Too vague
- No context
- Cursor doesn't know what you want
- You'll get generic code that doesn't fit
Good prompt: "I want users to be able to sign up and log in. They should be able to reset their password if they forget it. Use Firebase authentication."
Why it's good:
- Specific behavior
- Clear requirements
- Mentions your stack
- Cursor knows exactly what to build
Don't say:
- "Write a function that..."
- "Create a component that..."
- "Add a database query..."
Say:
- "I want users to be able to..."
- "When a user clicks X, Y should happen..."
- "Users should see Z when..."
Describe what should happen, not how to code it.
Building a note app:
✅ "I want users to be able to create notes. Each note should have a title and content. Notes should be saved to Firebase Firestore."
✅ "When a user clicks 'New Note', show them a form where they can enter a title and content. When they submit, save it to Firebase Firestore and show it in their list of notes."
✅ "I want users to be able to delete notes. Add a delete button to each note. When clicked, remove it from Firebase Firestore and update the list."
✅ "I want users to be able to edit their existing notes. Add an edit button that lets them change the title and content, then save the changes to Firebase."
Notice: All of these describe behavior, not code.
For a habit tracker:
✅ "I want users to be able to create a daily habit list. Each habit should have a name and a checkbox. When they check it off, save that they completed it today in Firebase."
✅ "Show users a list of their habits. Display how many days in a row they've completed each habit. Get this data from Firebase Firestore."
For a resource bookmarker:
✅ "I want users to be able to save links. They enter a URL and a title. Save it to Firebase. Show all their saved links in a list."
✅ "When a user clicks a saved link, open it in a new tab. Also track how many times each link has been clicked and show that number."
The pattern: Describe what should happen, mention Firebase/Firestore, and be specific about the user experience.
You don't build everything at once. You build iteratively.
Step 1: "I want a simple app where users can log in."
Step 2: "Now I want users to be able to save notes after they log in."
Step 3: "Now I want users to be able to edit their notes."
Step 4: "Now I want users to be able to delete notes."
Each step builds on the last. You're not trying to build everything at once.
Good prompts follow this formula:
- Who: "Users" or "I want"
- What: The action or behavior
- How: The stack or method (optional, but helpful)
- Context: What it should work with (optional)
Example: "I want users to be able to save notes to Firebase after they log in."
- Who: Users
- What: Save notes
- How: Firebase
- Context: After they log in
That's a perfect prompt.
Mistake 1: Being too vague ❌ "Make it better" ✅ "I want the login form to show an error message if the password is wrong"
Mistake 2: Asking for everything at once ❌ "Build a complete note-taking app with authentication, CRUD operations, and a beautiful UI" ✅ "I want users to be able to log in" (then build from there)
Mistake 3: Not providing context ❌ "Add a button" ✅ "Add a delete button to each note that removes it from Firebase when clicked"
Mistake 4: Asking for code, not behavior ❌ "Write a function that queries the database" ✅ "I want to show all of the user's notes when they log in"
Practice writing prompts:
Think about your project idea from Section 0. Write 3 prompts that describe what you want to build:
- One prompt for the core feature
- One prompt for a secondary feature
- One prompt for improving the user experience
Example (for a note app):
- "I want users to be able to create and save notes to Firebase"
- "I want users to be able to see all their notes in a list"
- "I want the note list to update automatically when a new note is created"
These are the prompts you'll use when you start building in Section 4.
Important: Install Cursor on your computer. Do NOT use the browser version. The browser version is horrible and doesn't work well for vibe coding.
Here's how to install Cursor properly:
- Go to Cursor.sh
- Click "Download" (usually a big button on the homepage)
- Choose your operating system:
- Windows: Download the
.exefile - Mac: Download the
.dmgfile - Linux: Download the appropriate package for your distribution
- Windows: Download the
It's free to start. You can use the free tier, and paid plans start at $20/month if you want more features later.
For Windows:
- Find the downloaded
.exefile (usually in your Downloads folder) - Double-click it to run the installer
- Follow the installation wizard (click "Next" through the prompts)
- Choose where to install it (default location is fine)
- Click "Install"
- Wait for installation to complete
- Click "Finish"
For Mac:
- Find the downloaded
.dmgfile (usually in your Downloads folder) - Double-click it to open
- Drag the Cursor icon to your Applications folder
- Open Applications and double-click Cursor to launch it
- If you get a security warning, go to System Preferences → Security & Privacy → Click "Open Anyway"
For Linux:
- Extract or install the downloaded package based on your distribution
- Follow your distribution's standard installation process
- Launch Cursor from your applications or start menu
- Sign in or create an account (if prompted)
- You're ready to go!
The browser version of Cursor:
- ❌ Doesn't have full access to your file system
- ❌ Can't understand your entire codebase properly
- ❌ Limited AI capabilities
- ❌ Slower and less reliable
- ❌ Missing key features you need for vibe coding
The desktop app:
- ✅ Full access to your files
- ✅ Understands your entire project
- ✅ Better AI assistance
- ✅ Faster and more reliable
- ✅ All the features you need
Bottom line: Install the desktop app. Don't use the browser version. It's worth the 2 minutes to install.
Cursor works best when you open a folder (your project):
- Open Cursor
- Click "File" → "Open Folder" (or use the keyboard shortcut)
- Select your project folder (the one with your code)
- Cursor now understands your entire project
We'll do this in Section 4 when we start building. For now, just make sure Cursor is installed on your computer.
When you first open Cursor:
- It might ask you to sign in or create an account
- It might show you a welcome screen or tutorial
- You can skip the tutorial if you want (we'll learn by building)
- You're ready to start building!
That's it. Cursor is installed and ready.
Install Cursor on your computer right now:
- Go to Cursor.sh
- Download the desktop app (not browser version!)
- Install it
- Open it
- Make sure it's working
Don't wait. Don't use the browser version. Install the desktop app.
Next: SECTION 4 — Your First Real Build (Tiny but Real)