Gabe Perez

Vibe coding process - do we jump in or plan it out?

byโ€ข

I'm super curious how everyone starts to vibe code? In the beginning I would simply jump into @bolt.new or @Cursor and just do a prompt and continue refining with the AI. I quickly realized this created a lot of issues as I didn't think about the structure, tech stack, and how I wanted the features to interact with each other and how the way I was building things would impact the user experience. I now do the following:

  • Write down a simple problem statement: "what am I trying to solve?"

  • Write down a simple solution statement: "what does the thing I'm building do (to solve the problem)"

  • Share the above with @ChatGPT by OpenAI and word vomit my thoughts, ideas, how I want the user to interact with my app, etc and ASK ChatGPT to turn everything I said and want into an easy to understand directive and instructions for an Engineer.

  • I then take the Engineer instructions and give it to a new chat in ChatGPT and ask it to turn those instructions into a prompt for an AI engineer and to break up the project into sections so that each time we focus on a section the app is shippable and keeps things easy to work on.

  • I take the output and paste it into my notes. I then give it to Cursor.

  • Once in Cursor, I create a new project folder and got at it!

Curious what everyone else does and if you've experience any things to avoid or must do

927 views

Add a comment

Replies

Best
David Martรญn Suรกrez

Hey Gabe, I really resonated with this, especially the part about jumping into tools like Cursor or Bolt and figuring things out as you go. I was doing exactly the same, and I often ended up rewriting entire flows or realizing too late that my feature ideas didnโ€™t quite connect.

Thatโ€™s actually what led me to build a little side project: lovableprompts.app. Itโ€™s super simple, just helps you generate a first optimized prompt to kick off your project in Lovable, Cursor, or wherever youโ€™re working. You describe your idea in plain text, and it gives you back a structured prompt that includes the problem, the user flow, the ideal UX, and even some suggestions for how to break it down into features or milestones.

I originally made it just for myself, but I started sharing it with friends who were also vibe coding and itโ€™s been surprisingly helpful to others too. It doesnโ€™t try to do too muchโ€”it just gives you a really solid starting point so you donโ€™t have to stare at a blank input field.

Would love for you to try it and let me know what you thinkโ€”any feedback is super welcome!

Tasos V

I would definitely never jump into an AI development tool without having these 2 things cleared out:

  • What is the problem im trying to solve (clearly written down)

  • How I am solving this problem (clearly written down)

Jumping into vibe coding without these 2 things, you are probably rich. Cause it means you have a lot of time to waste iterating, fixing, debugging, cleaning etc. And especially when no one is watching. That's a luxury of the rich person. Only if we had infinite amount of time right?


I personally use v0.dev due to my tech knowledge being around JS/TS/NodeJS/NextJS.


I use this prompt to kick things off fast, ONCE i have the things i mentioned earlier clear.


" ๐˜Š๐˜ณ๐˜ฆ๐˜ข๐˜ต๐˜ฆ ๐˜ข ๐˜ท๐˜ฆ๐˜ณ๐˜บ ๐˜ค๐˜ญ๐˜ฆ๐˜ข๐˜ณ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ง๐˜ถ๐˜ญ๐˜ญ๐˜บ ๐˜ณ๐˜ฆ๐˜ด๐˜ฑ๐˜ฐ๐˜ฏ๐˜ด๐˜ช๐˜ท๐˜ฆ ๐˜ข๐˜ค๐˜ณ๐˜ฐ๐˜ด๐˜ด ๐˜ข๐˜ญ๐˜ญ ๐˜ฅ๐˜ฆ๐˜ท๐˜ช๐˜ค๐˜ฆ๐˜ด ๐˜ข๐˜ฑ๐˜ฑ ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ฉ๐˜ข๐˜ด ๐˜ต๐˜ฉ๐˜ฆ ๐˜ง๐˜ฐ๐˜ญ๐˜ญ๐˜ฐ๐˜ธ๐˜ช๐˜ฏ๐˜จ ๐˜ง๐˜ถ๐˜ฏ๐˜ค๐˜ต๐˜ช๐˜ฐ๐˜ฏ๐˜ข๐˜ญ๐˜ช๐˜ต๐˜บ:
1. ๐˜ˆ๐˜ถ๐˜ต๐˜ฉ๐˜ฆ๐˜ฏ๐˜ต๐˜ช๐˜ค๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜ธ๐˜ช๐˜ต๐˜ฉ ๐˜š๐˜ถ๐˜ฑ๐˜ข๐˜ฃ๐˜ข๐˜ด๐˜ฆ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ข ๐˜ท๐˜ฆ๐˜ณ๐˜บ ๐˜ฎ๐˜ช๐˜ฏ๐˜ช๐˜ฎ๐˜ข๐˜ญ ๐˜‹๐˜‰ ๐˜ด๐˜ค๐˜ฉ๐˜ฆ๐˜ฎ๐˜ข ๐˜ต๐˜ฐ ๐˜ด๐˜ต๐˜ฐ๐˜ณ๐˜ฆ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ ๐˜ช๐˜ฏ๐˜ง๐˜ฐ.
2. ๐˜ˆ ๐˜ฎ๐˜ช๐˜ฏ๐˜ช๐˜ฎ๐˜ข๐˜ญ ๐˜ฃ๐˜ถ๐˜ต ๐˜ท๐˜ฆ๐˜ณ๐˜บ ๐˜ฃ๐˜ฆ๐˜ข๐˜ถ๐˜ต๐˜ช๐˜ง๐˜ถ๐˜ญ ๐˜œ๐˜ ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ช๐˜ด ๐˜ข๐˜ญ๐˜ช๐˜จ๐˜ฏ๐˜ฆ๐˜ฅ ๐˜ต๐˜ฐ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ช๐˜ฎ๐˜ข๐˜จ๐˜ฆ ๐˜ ๐˜ข๐˜ฎ ๐˜ข๐˜ต๐˜ต๐˜ข๐˜ค๐˜ฉ๐˜ช๐˜ฏ๐˜จ (๐˜ฉ๐˜ฆ๐˜ณ๐˜ฆ ๐˜ช ๐˜ข๐˜ต๐˜ต๐˜ข๐˜ค๐˜ฉ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ช๐˜ฎ๐˜ข๐˜จ๐˜ฆ ๐˜ธ๐˜ช๐˜ต๐˜ฉ ๐˜ฏ๐˜ข๐˜ฎ๐˜ฆ: ๐˜ช๐˜ฅ๐˜ฆ๐˜ข๐˜ญ๐˜ถ๐˜ช)
3. ๐˜›๐˜ฉ๐˜ฆ ๐˜ข๐˜ฑ๐˜ฑ ๐˜ช๐˜ด ๐˜ข๐˜ฃ๐˜ฐ๐˜ถ๐˜ต___________________________ .
4. ๐˜›๐˜ฉ๐˜ฆ ๐˜ค๐˜ฐ๐˜ฅ๐˜ฆ ๐˜ด๐˜ฉ๐˜ฐ๐˜ถ๐˜ญ๐˜ฅ ๐˜ฃ๐˜ฆ ๐˜ค๐˜ญ๐˜ฆ๐˜ข๐˜ฏ, ๐˜ธ๐˜ช๐˜ต๐˜ฉ ๐˜ข ๐˜ง๐˜ถ๐˜ฏ๐˜ค๐˜ต๐˜ช๐˜ฐ๐˜ฏ๐˜ข๐˜ญ ๐˜ฑ๐˜ณ๐˜ฐ๐˜จ๐˜ณ๐˜ข๐˜ฎ๐˜ฎ๐˜ช๐˜ฏ๐˜จ ๐˜ฑ๐˜ข๐˜ณ๐˜ข๐˜ฅ๐˜ช๐˜จ๐˜ฎ ๐˜ง๐˜ฐ๐˜ค๐˜ถ๐˜ด, ๐˜ข๐˜ฏ๐˜ฅ ๐˜ธ๐˜ช๐˜ต๐˜ฉ๐˜ฐ๐˜ถ๐˜ต ๐˜ถ๐˜ฏ๐˜ฏ๐˜ฆ๐˜ค๐˜ฆ๐˜ด๐˜ด๐˜ข๐˜ณ๐˜บ ๐˜ณ๐˜ฆ๐˜ณ๐˜ฆ๐˜ฏ๐˜ฅ๐˜ฆ๐˜ณ๐˜ด (๐˜ต๐˜ฉ๐˜ช๐˜ด ๐˜ช๐˜ด ๐˜ท๐˜ฆ๐˜ณ๐˜บ ๐˜™๐˜ฆ๐˜ข๐˜ค๐˜ต/๐˜•๐˜ฆ๐˜น๐˜ต๐˜‘๐˜š ๐˜ณ๐˜ฆ๐˜ญ๐˜ฆ๐˜ท๐˜ข๐˜ฏ๐˜ต) .
5. ๐˜”๐˜ข๐˜ฌ๐˜ฆ ๐˜ด๐˜ถ๐˜ณ๐˜ฆ ๐˜ต๐˜ฉ๐˜ฆ ๐˜œ๐˜Ÿ ๐˜ฐ๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ข๐˜ฑ๐˜ฑ ๐˜ช๐˜ด ๐˜ท๐˜ฆ๐˜ณ๐˜บ ๐˜ค๐˜ญ๐˜ฆ๐˜ข๐˜ณ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ท๐˜ข๐˜ญ๐˜ถ๐˜ฆ ๐˜ฆ๐˜น๐˜ต๐˜ณ๐˜ข๐˜ค๐˜ต๐˜ฆ๐˜ฅ ๐˜ฃ๐˜บ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ ๐˜ช๐˜ด 100% ๐˜ฐ๐˜ฑ๐˜ต๐˜ช๐˜ฎ๐˜ช๐˜ป๐˜ฆ๐˜ฅ"



Nika

@cryptosymposiumย You described it well Tasos + I would add one point: Cybersecurity and data safety โ€“ย I have seen some people who didn't know how the code works properly and users' data "became somehow public". :D
Not a very good start. When people have these things in order, that's when I would start.

Tasos V

@busmark_w_nikaย Definitely ! A classic case is when people (usually the non-techie) mess up the Database stuff when using AI dev tools. For example RLS is the main issue when someone is launching. If you launch without RLS, at least make sure that it is not emails or credit card info that are exposured.

Nika

@cryptosymposiumย or when someone can see passwords. ๐Ÿคก The bigger the company is, the bigger the faux pas.

Ambika Vaish

@cryptosymposiumย That โ€œluxury of timeโ€ line hit way too close, just a few days into a 30-day build (zero coding experience, AI all the way), and Iโ€™ve already seen how crucial it is to lock in the problem + solution upfront. Thanks for the prompt, definitely keeping that in my toolkit.

Igga Fitzsimons

Back in my coding days, we used to get a Software Requirements Specification (SRS) document from a software analyst. That doc had everything we were supposed to code, from the user-facing stuff to the hardcore implementation details.


In vibe-coding, we're essentially the software analysts, and the AI is the developer. Why not send SRS-prompts?


  • Functional requirements (what the software should do)

  • Non-functional requirements (performance, security, database, etc.)

  • Use cases or user stories

  • Constraints and assumptions

  • Glossary of terms

  • Business logic

  • User flows and interactions


Charlie Reagan
Gabe Perez

@captain_vistaย first time I'm hearing of SRS but it makes SOOO much sense. Might try this with the User Journeys to see if I get better immediate output.

Nils Blum Oeste

@captain_vistaย This indeed, I agree! I like to keep these documents in markdown files, checked into the repository, not just including it in prompts. Cursor allows to reference these documents easily to get them into the context for any prompt. Additionally it can also help to create the documents in the first place or refine them, this approach works very well for me, not just to make the Agent work better, but also to my own benefit on understanding better where I'm heading with a project.

Anton Cogood

This systematic approach is exactly what we teach in Enlighter!

As nervous first-time launchers, seeing you break down gives us much hope that we're actually solving a problem real people have.

@gabe, what's one thing you'd tell us to improve before our launch?

Coming soon page: https://www.producthunt.com/products/enlighter

Thanks for the gold! ๐Ÿ™

Ray luan

Great points Gabe! I think curor and Bolt.new are targeting developer as audience for their daily works, especially for coding. However, business owners and UI/UX designers/PMs have different use cases. For business owners, the perfect use case is to use one prompt only to generate a working and functional website prototype instead of generating coding for a website then modify the codes. Those are totally different markets and target audience.


So far per my experience, Claude Sonnet 3.7 is much, much better than ChatGPT for code generation. So for SMBs or other non-coding background free lancers or solopreneurs, a tool can be used to generate an app with pure human language is much desired. And I think it is a bigger and incremental market than developers.

Tania Bell

@ray_luanย have you tried the latest Gemini version?

Ray luan

@taniabellย Not yet, hope it will code better

Tania Bell

@ray_luanย it's on par and prob even better than 3.7

Matt McDonagh
  1. What's the problem?

  2. What other solution(s) have been solved?

  3. How is my solution different?

Bonus: WHO is my solution different and better for?


Always use an instructions.md or AI-Instructions file to dictate house style, give your AI assistant some ground rules, etc...

Gabe Perez

@matt__mcdonaghย ohhhh, that's actually a good one. "who will be using it" can inform a lot actually. I'm going to add that to my list!

Andrรฉ J

Like Notorious BIG (Biggie) said: I wrote a 10 step booklet for ya'll to read. https://eoncodes.substack.com/p/how-i-built-an-ai-wrapper-saas-in I can repost here on p/vibe if ya'll want? Let me know. TL;DR: I think neither dive in or plan it out. Start with something your extremely passionate about. Then adrenaline will take you from zero to one. Vibe code or no vibe code. Thats how it works for me at least. Time and space just vanish around you and before you know it, you have something working in no time. ๐Ÿ˜ธ

Gabe Perez

@sentry_coย this was probably the best hook I've read lol, Immediately clicked the link. On your other note, I rely on adrenaline and "vibes" too much sometimes which is how I got to a bit more methodical to my approach!

Ajin Sunny

Please don't jump in. Always plan it out.

Added benefits of planning out is that the end outcome will always be more polished and you will get to the end out come sooner rather than later.

Gabe Perez

@ajinsunnyย I'm starting to notice this! Even something small like planning color palette and giving it to the agent has a big impact

Rags

As a PM, I've found that mimic-ing how IRL product teams build products is what seems to strangely also work best for vibe coding. After much iteration I've landed on:

  • A 'PM agent' that kicks off things by asking me 3 things - what's the problem i'm looking to solve, who's the user i want to solve for, and what are the initial features I'd like to start from.

  • Agent's output is a PRD, and a set of User Stories with acceptance criteria.

  • Use these User Stories as input, and ask to start coding from a small subset of these for the initial version.

  • Finesse by talking with LLM until I get this right.

  • Iteration: Inputs are entire set of User Stories again + code + instructions on which story to build next.

I must add I build prototypes primarily, so don't care at all about backend/ security etc as goal is to validate concepts with users fast. Throwaway code is perfect for prototyping.

Gabe Perez

@ragsontherocksย I really like the idea of using a PRD with user stories. That's really clever. Have you tested building the same tool or app with and without user stories to see how much that impacts the output?

I have a feeling User Stories actually play a big part and getting close to the PM's vision.

Rags

@gabeย Yeah, does play a huge part in my experience, especially for iterative development. One example: I was trying to build a pet health tracker for my pets and wanted it to be multi-page and support pet profiles, vaccine records, pet visits, insurance info etc. I can start with a comprehensive prompt and v0/lovable will give me a nice scaffold with placeholders and some base functionality. But I've found that degrades quickly as I start to build on top of it and fill in functionality, and I inevitably hit points where existing functionality is re-done/dropped etc as complexity increases.

User stories seem to help guide what to build next in logical chunks that are self-contained and if written well also indicate end-state desired not just features required. Sonnet has been pretty great at following these.

Jodyl Gonsalves

I bounce of ideas with grok or chatGPT and come up with a plan. What features the MVP will have, etc. then start vibe coding. But I use @Replit to vibe code, not bolt or cursor.

Andrew Stewart

@jodylgonsalvesย What makes @replit work well for you?

Jodyl Gonsalves

@replitย  @andrew_g_stewartย Hi Andrew, @Replit does it all. From creating the app from a natural language prompt to deploying in one or two clicks. I don't know about Bolt but I don't think cursor does deployment, I could be wrong.

I'm sure Bolt and Cursor are good, I just prefer replit.

Andrew Stewart

ย  @jodylgonsalvesย Correct, cursor doesn't do deployments. I am going to have to try @replit sometime!

Gabe Perez

@jodylgonsalvesย  @replitย  @andrew_g_stewartย yeah, Cursor you have to deploy it yourself...I actually prefer this as I have a very nice method that I use using @Cloudflare Pages and @GitHub but....I should try Replit. I'm curious how the experience will compare.

@jodylgonsalves are you able to import code into Replit and continue?

Gabe Perez

@jodylgonsalvesย curious why Replit!


Jodyl Gonsalves

@gabeย Hey Gabe, I think replit is a one stop solution, from creating to deploying, it just does it.

Again as I mentioned in my other comment here, I'm sure Bolt and Cursor are good, Replit just works for me.

123
Next
Last