Back to Blog
#prompt#Writick#Prompt Engineering#writing habit tracking app

How I Optimised My Prompt for Vibe Coding

November 14, 202512 min read

Introduction

If you've ever done "vibe coding", you know the feeling.

You get a spark of inspiration at 10 a.m., open your no-code builder, and — boom — a half-working prototype appears.

Whole day past, it's also a half-broken one.

Been there. Built that. Broke that. This post is about how I cleaned up my mess using prompt optimisation.

Not fancy theory, just real experience, using repeatable tricks that made my AI outputs less trash and more usable code.

Slot Machines vs Vibe Coding meme comparing AI coding outcomes to gambling odds
The gamble:vs AI coding ——same unpredictable.

You keep adding "just one more thing." The logic tangles. The UX cries.

Then the AI stops understanding you.

Waterfall vs Agile vs AI vs Vibe Coding development methodology comparison showing escalating complexity
Vibe coding without structure escalates faster than you'd expect—chaos grows exponentially.

Part 1 — The Pain Points of Vibe Coding

Vibe coding starts like a caffeine rush: Ideas explode, prototypes appear, dopamine hits. Then chaos sneaks in.

You keep adding "just one more thing." The logic tangles. The UX cries. Then the AI stops understanding you.

And the worst part?

You think you're giving clear prompts, but you're actually tossing half-baked thoughts at a model and praying it gets the vibe.

Spoiler: It doesn't work. Garbage in → polite garbage out. And the whole work became like a polished wrapper for nothing.


Part 2 — The Prompt Optimisation Fix

Here's what finally worked for me: stop chatting with AI like it's a genie, and start briefing it like a coworker who needs context.

1. Be specific (AI hates vagueness)

Bad: "Build a dashboard for writers."

Better:

"You're a senior product designer. Create a clean dashboard for a writing tracker app. Show streak, word count, and today's goal."

AI doesn't do "vibes." It does parameters.

Give it a specific role like "senior product designer with 10 years experience" to quickly help AI know its identity.

And be boringly detailed, especially on the function parts.

Don't let the "vibe coding" determined what function should contain — and your output will suddenly feel inspired.

If you don't have complete ideas, talk to the AI first before you want to "vibe" something.

2. Give context like a boss

AI doesn't know what "Writick" is or that your audience is anxious grad students with 15 tabs open. Tell it.

Example: "Writick is a writing habit app for students. The tone is warm and encouraging, not corporate. The UI is minimal and rounded."

Context turns random answers into relevant ones.

3. Structure your prompt like Lego

Break your prompt into blocks you can reuse:

BlockMeaningExample
Role / PersonaWho the AI pretends to be"You are a senior product designer."
Project ContextThe "why""This is a writing-habit tracker called Writick."
TaskThe actual job"Write a UI spec in markdown."
ConstraintsGuardrails"Keep it under 5 screens. No login flow."
FormatOutput style"Use markdown tables."
ExampleShow what good looks likePaste a MVP output.

I keep these as mini building blocks. Mix, match, and reuse — just like LEGO, but with fewer sharp edges.

4. Modularise and version your prompts

Never overwrite. Clone and rename. "final_v3_really_final.md" is a lie — version properly.

I keep a little folder of prompt templates like:

  • feature_list_short.md
  • landingpage_prompt_v2.md
  • user_story_v3.md
File directory structure showing versioned prompt templates for writing app development
My prompt library: versioned templates that stay organized and reusable.

Such small action could make your chatbox like a personal prompt library. When you find one that works, keep it. This will reduce a lot of chaos in the future.

5. Iterate like you debug

Don't restart from scratch. Tweak one variable and rerun.

Example:

First try: "I wanna 10 features for a writing app, make it functional and fun."

Output: chaos — grammar gamification, social network, weird leaderboard… and so on

Refined prompt: "List 5 simple features for a solo writing tracker app. Focus on daily streaks, motivation, and clean UI."

Output: finally usable. See? One line fixed the vibe.


Part 3 — Case Study: Building Writick

My app Writick is a writing habit tracker for writing lovers.

When I first started, I was all "vibes." Cute UI, cozy colors, daily word count log.

Then I told AI: "Write a UI spec for Writick."

Result? A beautiful disaster. Fifteen pages. Feature creep. Social feed. Achievements I never planned.

So I rebuilt the prompt properly:

Role: Senior Product Manager
Context: Writick, a minimalist writing habit app
Task: Create a feature list in Markdown
Constraints: Focus on streaks and word tracking. No AI chat or community yet.
Format: Markdown table with 'Screen | Feature | Description'
Example: One row as sample.

The new output was crisp, focused, and ready to use in any vibe coding app. It make the app finally felt mine, not AI's fever dream.

With this prompt it came out nearly 90% what I thought.

Writick app UI UX design specification showing warm, healing interface with hand-drawn pencil sketch style
UI/UX brief: Warm, healing design with hand-drawn aesthetic.
Core features list for Writick including Daily Writing Log, Progress Dashboard with charts and streaks, and Goal Setting
Core features: Daily Log, Progress Dashboard, and Goal Tracking.
Writick mobile interface showing Today's Writing log screen with word count input, writing sample field, creative note section, and navigation tabs
The first version with vibe coding (tool: Lovable)

Conclusion

Vibe coding gives you speed. But with prompt optimisation, it finally gives you control.

Once I started treating prompts like design briefs — not random thoughts — my workflow became calmer, my code cleaner, and my caffeine consumption… well, still high, but more productive.

Lastly, here's your quick-and-dirty checklist:

  • ✅ Define role/persona
  • ✅ Add context and goal
  • ✅ Give constraints
  • ✅ Specify output format
  • Iterate — one tweak per run

Prompt engineering isn't rocket science. It's just structured overthinking.


🧠 FAQ: Prompt Optimisation for Real People

Q1. What's the easiest way to tell if my prompt sucks?

If the output surprises you in a bad way twice in a row — it's your fault, not the model's. Rewrite it like you'd brief a designer. Short, clear, scoped.

Q2. What's a "spaghetti prompt"?

It's when you keep adding "oh and also…" to the same prompt until the AI doesn't know which instruction to obey. Delete half of it. Start modular.

Q3. How do I know when a prompt is "good enough"?

When the AI output looks 80% usable on the first try. The last 20% is just seasoning.

Q4. Can I reuse prompts across projects?

Yes — make a "prompt library." Treat them like design templates. A good prompt is a mini-tool. Clone, edit, reuse.

Q5. Do I need frameworks like Chain-of-Thought?

Only if your task is complex. For 80% of product or design work, "Role + Context + Task + Constraints + Format" does the job beautifully.


Final Thought

Prompt optimisation won't make you a better coder overnight. But it will make your chaos manageable. And once you stop fighting your own prompts, you'll have time to build things that actually ship. 🚀

Or, at the very least — less trash in your folder.


🔗 Read More

If you enjoyed this blog and want to explore what & how AI can help you design and prototype with intuition, check out my related posts:

Ready to experience Writick?

Start building your writing habit tracker today.

Try It Now
Built with v0