How to describe your app so AI builds the right one
The gap between a great AI-built app and a mediocre one is almost never the idea — it's the describing. The four moves that collapse a vague sentence into your exact app.
AppX team ·
The difference between people who get a great app out of AI and people who get a mediocre one is almost never the idea. It's the describing.
Same tool. Same model. Same thirty seconds. One person types a vague sentence and gets a watery, generic app that technically matches what they said and excites no one. Another person types a sharp one and gets something that feels designed — like it knew what they meant. The gap isn't talent or technical skill. It's a handful of habits you can learn in the time it takes to read this.
Why vague descriptions fail (it's not the AI's fault)
When you say "build me a fitness app," you're not giving the AI too little information. You're giving it too many possibilities.
flowchart TD
V["'A fitness app'"] --> A["workout logger?"]
V --> B["step counter?"]
V --> C["meal planner?"]
V --> D["yoga library?"]
V --> E["trainer marketplace?"]
V --> F["social challenges?"]
A & B & C & D & E & F --> G(("AI averages<br/>them all"))
G --> H["a blurry app<br/>that is no one's app"]
style V fill:#3a1414,stroke:#c0392b,color:#f7d7d7
style H fill:#3a1414,stroke:#c0392b,color:#f7d7d7
You meant one of those. The AI doesn't know which, so it builds the blurry center of all fitness apps — which is to say, no one's app. Specificity isn't about adding detail for its own sake. It's about collapsing the possibilities down to the one you have in your head. Every clear word you add removes a thousand apps the AI might have built instead.
The four moves that make a description sharp
You don't need a prompt-engineering course. You need four moves, in order:
flowchart TD
S["Your idea"] --> M1["1 · Name the core action<br/><i>the one verb a user does</i>"]
M1 --> M2["2 · Name who it's for<br/><i>the user shapes everything</i>"]
M2 --> M3["3 · Sketch the screens<br/><i>hand over the skeleton</i>"]
M3 --> M4["4 · Add one detail at a time<br/><i>build, look, layer</i>"]
M4 --> R["An app that feels like <b>yours</b>"]
M4 -. "refine" .-> M3
style S fill:#13203a,stroke:#5e6ad2,color:#dbe2ff
style R fill:#13241a,stroke:#2ecc71,color:#d7f7e3
1. Name the core action. What's the one thing a user does? Not the category — the verb. "Logs a workout." "Scans a receipt." "Books a slot." If you can't name the single core action, your idea isn't ready to build — and that's useful to learn in one sentence instead of three screens deep.
2. Name who it's for. "A reading app" and "a reading app for parents tracking what their kids read at bedtime" produce completely different apps. The user shapes every decision about tone, layout, and features.
3. Sketch the screens, roughly. No spec needed — just gesture at the shape: "a home screen with today's tasks, a screen to add one, and a settings screen." This hands the AI the skeleton instead of making it guess your architecture.
4. Add one detail at a time. The move everyone skips, and the most important. Don't pour the whole vision into the first message. Get the core working, see it on your phone, then layer. Each addition lands cleanly because the AI is changing a real, working thing instead of juggling forty requirements at once.
Weak versus strong, side by side
Abstract advice is useless, so here's the same idea described two ways:
| Idea | Weak | Strong |
|---|---|---|
| Food | "A delivery app." | "A food-ordering app for one neighborhood. Home screen lists three local restaurants. Tapping one shows its menu. Users add items to a cart and place an order. Clean and friendly, not corporate." |
| Gym | "An app for my gym." | "An app for members of one gym to book class slots. Home shows this week's classes with spots left; tapping a class books it and adds it to 'my bookings'. Members can cancel up to two hours before. Coach view comes later." |
The strong versions aren't flowery — count what they add: the core action, the user and scope, the screens, and a note on feel. Notice the gym example's last three words: comes later. That's move four in action — naming what you're deliberately not building yet, so the first version stays focused and actually works.
Describe the feel, not just the function
Function gets you an app that works. Feel gets you an app that's yours. The AI is genuinely good at tone if you give it any — and most people give it none.
A few words go a long way: "Calm and minimal, lots of white space." "Playful, rounded, colorful — it's for kids." "Serious and dense, a tool for professionals who use it all day." You're not designing pixel by pixel. You're handing over a vibe, and a good model runs with a vibe better than most people expect.
Treat the first result as a draft, not a verdict
Here's the mindset shift that separates frustrated users from happy ones. The first generation is not a test you pass or fail. It's draft one. It exists to be reacted to.
flowchart LR
D["Describe"] --> G["AI builds"]
G --> L["You look at it<br/>on your phone"]
L --> R["You react —<br/>'too busy', 'wrong order'"]
R --> D
style L fill:#13203a,stroke:#5e6ad2,color:#dbe2ff
You'll look at it and instantly know things you couldn't have said upfront: "the home screen's too busy," "this should be first, not third," "wrong tone." That reaction is information you didn't have before you saw it — and reacting to something concrete is far easier than specifying everything in the abstract. So the loop isn't describe-perfectly-once. It's describe, look, react, refine. The app gets sharper every pass, and so does your description.
The skill compounds
The quiet payoff: describing apps well makes you better at thinking about apps. Naming the core action forces you to find the heart of your idea. Naming the user forces you to stop building for "everyone." Adding one detail at a time forces you to prioritize. These aren't AI tricks — they're product-thinking habits, and the AI just gives you a fast, honest loop to practice them in.
So: name the action, name the user, sketch the screens, add one detail at a time, describe the feel, and treat the first draft as a draft. That's the whole craft.
Open AppX and try it now — start with one sharp sentence and watch how much closer the result lands when you've named the core action. The better you describe, the less it has to guess.
— Ilyos, building AppX. Follow the journey @ilyos_ceo.