All examples →

How to write your first vibe coding prompt

Most AI-built apps stall because the first prompt asks for the whole app. Here's a copy-paste template for Cursor, Lovable, Bolt or Replit, the 3-prompt build order that keeps v1 small, and a real example. Or skip the writing: type one sentence and FirstThree writes all three prompts for you.

Free · no sign-up · your idea isn't stored · about 5 seconds

The 5 parts of a good first prompt

  1. What and who: one sentence on what the app does and who uses it. This is context, not a feature list.
  2. Stack: name it (e.g. React + Vite + Tailwind for Cursor) or let Lovable, Bolt or Replit pick. Beginners: keep data in the browser (localStorage) for v1.
  3. One core screen with sample data: the single screen that proves the idea works. Real saving comes in prompt 2.
  4. What not to build yet: accounts, payments, notifications, extra pages. AI builders add these on their own unless told not to.
  5. A "Done when" check: something you can verify in a minute, so you know when to paste the next prompt.

Copy-paste template

First prompt template
I'm building [APP NAME]: [one sentence: what it does and who it's for].

Set up a new [STACK, e.g. React + Vite + Tailwind, or "whatever you recommend"] project.
Build only the first screen: [CORE SCREEN] showing [WHAT'S ON IT], using realistic sample data.

Do not build yet: user accounts, payments, notifications, extra pages, a real database.

When you finish, tell me how to open/run it and what to click.
Done when: [one thing I can check in under a minute, e.g. "the list shows 5 sample items and the Add button opens the form"].

The 3-prompt build order

  1. Prompt 1: set up + core screen. Project setup and the one screen that matters, with sample data.
  2. Prompt 2: make it real. Save data (localStorage or the tool's built-in database) and replace the sample data with real logic.
  3. Prompt 3: polish v1. Empty states, error messages, delete/edit, mobile layout and a short test checklist.

Paste one prompt, check its "Done when", then paste the next. If something breaks, ask for one fix ("change only what you need to fix this") instead of a rebuild.

Real example: one sentence → 3 Bolt prompts

Generated by FirstThree

StrumTimer: “a practice timer for guitar students that logs daily minutes and shows a weekly streak”

A simple practice timer for guitar students to log daily minutes and track their weekly streak.

v1 includes

  • Start and stop practice timer with live display
  • Manual entry form for past practice minutes
  • Daily log list of recent practice sessions
  • Visual weekly streak counter and total minutes summary

Skip for now

  • User accounts and login · Local storage keeps data on your device for v1.
  • Audio chord recognition · Manual timers and logs are much simpler to build.
  • Social sharing · Focus on personal habit building first.
  • Dark mode toggle · Stick to one clean default theme for now.

Stack: React with Vite and Tailwind CSS · Browser localStorage · Bolt.new preview

1Set up project and timer screenCreate the Vite React app with Tailwind and build the working practice timer interface.
Create a new React application using Vite and Tailwind CSS called StrumTimer, a practice timer for guitar students. Build the main dashboard screen featuring a large live practice timer with start, pause, and reset buttons. Add a summary section at the top showing total practice minutes today and the current weekly streak using hardcoded sample data. Make the layout clean, modern, and mobile-friendly with a nice guitar-themed color palette. Do not add user authentication or backend databases yet. Done when the timer starts, stops, and displays mock summary numbers on the screen.
2Add local storage and loggingMake practice sessions save to browser storage and update the streak dynamically.
Update the StrumTimer app so that when a user finishes a timer session, the elapsed minutes are saved to the browser localStorage. Add a form below the timer allowing users to manually log practice minutes with a date picker and optional notes. Update the summary dashboard and weekly streak counter to calculate real stats based on these saved logs instead of sample data. Ensure sessions appear in a recent history list below the timer. Do not add multi-device syncing or external APIs. Done when stopping the timer saves the session and immediately updates the weekly streak and history list.
3Polish and empty statesAdd helpful empty states, delete options, and final UI polish.
Add final polish and error handling to the StrumTimer app. Include friendly empty states with encouraging text when there are no practice logs for the week. Allow users to delete accidental log entries from their history list. Add a confirmation toast or animation when a practice session is successfully saved. Ensure all buttons have clear hover states and the layout looks great on both phone and desktop screens. Do not add complex audio features or user settings. Done when a new user sees an encouraging empty state and can successfully log, view, and delete practice sessions.

Generate a fresh plan for this idea →

Common first-prompt mistakes

FAQ

What should my first vibe coding prompt include?
Five things: what the app is and who it is for, the stack (or let the tool choose), the one core screen to build first with sample data, what not to build yet (accounts, payments, extra pages), and a "Done when" check you can verify in a minute.
Should I describe my whole app in the first prompt?
No. A giant first prompt makes the AI build everything at once, and it usually stalls or breaks. Put the full idea in one sentence for context, then ask only for setup plus one working screen. Add real data in prompt 2 and polish in prompt 3.
How many prompts does a first version need?
For a small app, three is enough: (1) set up and build the core screen with sample data, (2) make the main feature real with saved data, (3) polish, empty states and a test checklist. Paste one, check it works, then paste the next.
Is this different for Cursor, Lovable, Bolt and Replit?
The structure is the same; the details change. Cursor needs a stack and how to run it locally. Lovable and Bolt handle setup, so describe screens and behaviour. Replit Agent can use its built-in server and database. ChatGPT works best with a single index.html file.
Is there a free vibe coding prompt generator?
Yes. FirstThree (https://firstthree.app) turns one sentence about your app idea into a tiny v1 plan and three copy-paste prompts in build order for Cursor, Lovable, Bolt, Replit or ChatGPT. It is free and needs no sign-up.

Prompts for your tool