So you want to code an app. Here’s what you can do.
First, you need to create the app specification. Vibe coding is as much about product management as it is coding—you need to define what the product is!
Here’s a template:
# Overview
The app is a ____ app...
# Screen flows
Screen A: ___
Screen B: ___
An example:
# Overview
The app is a "TODO" app, that allows the user
to list items they need to complete.
# Screen flows
The first screen is a list of lists. The user
can tap on a list and view the todo items
within. There is a button "New list" that
prompts them to name a new list.
The todo list has a list of tasks. A task can
be completed (strikethrough) or not. A circle
on the left also shows the status. There is a
text field at the bottom "new task" that
allows the user to type a new task.
If you are new to product development, I suggest starting by copying a simple app that you use every day, like “Todo”. Use the app, look at the screens, build requirements from that and enter it into your template.
AI is pretty good at creating things that it has seen before. The more “original” your app idea is, the more detailed you will need to be. Using a Todo app as an example, this is such a well known pattern, it will do a lot of work to fill in the blanks. Learning how to articulate your desired product outcome, is a key skill in the era of vibe coding. Practice it.
One neat thing about modern coding, is that you can do much of the work in the simple “Notes” app. I used to pull out my laptop on airplanes for example to do some coding. Now, much of the bottleneck of creating products by coding is in the text specifications, I can spend the same time writing detailed prompts which I can execute from the comfort and fast internet of my desk once I arrive home.
With your prompt created, you’re ready to vibe code. It’s best to start with a blank template. Install Xcode, and create a new project. Give it any name you like.
Run the app to see what it looks like.
TIP If you’re brand new to coding, understand that “code” is basically just files and folders. The files contain the code used to build your app, the folder is used to organize. Much like in Word how you open a single file, when coding you’ll be working with a folder (that contains all the files consisting of the app).
With your blank project created, open project folder in your preferred vibe coding tool, for example antigravity or Claude Code.
Then paste in your prompt.
Watch the agent chat window, in case you need to confirm any steps.
Once built, it’s common for the AI, much like a human, to have bugs that prevent the code from compiling into the final product. If the AI didn’t do it automatically, as it to build the project and fix any errors.
With that, you should have your first pass!
If above you copied an existing app, now would be a great time to go back and create a new prompt with your own design, and repeating those steps.
The next step is to refine your product. But first, there is a key test: how accurate was this initial pass by the AI at building the product from your original prompt? Your next options are to a) scrap the work, refine your prompt and run it again from scratch, or b) ask for changes, refining the product from this starting point. Traditionally, coders would always use b) because the cost to start-over was too high but with AI it’s cheap to start over.
If the app that resulted from your initial prompt is pretty good, I’d say keep it and refine from there (the goal is certainly NOT to create a magic single prompt that literally builds your final product, incremental development is to be expected). If however, the result is totally off base, you may find it more efficient to think about what was missing in your initial spec, refine it and try again. Remember, the AI can only build what you tell it about. If a key requirement was missing in your prompt, it will probably be missing in the output (unless the problem space is a very well known one, such that it can be inferred).