<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: icarus lee</title>
    <description>The latest articles on DEV Community by icarus lee (@icaruslee).</description>
    <link>https://dev.to/icaruslee</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3120807%2F60e07703-736e-47ec-9861-f3ddc697541b.png</url>
      <title>DEV Community: icarus lee</title>
      <link>https://dev.to/icaruslee</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/icaruslee"/>
    <language>en</language>
    <item>
      <title>Practicing Vibe Coding with Cursor</title>
      <dc:creator>icarus lee</dc:creator>
      <pubDate>Sun, 04 May 2025 01:25:46 +0000</pubDate>
      <link>https://dev.to/icaruslee/practicing-vibe-coding-with-cursor-3loe</link>
      <guid>https://dev.to/icaruslee/practicing-vibe-coding-with-cursor-3loe</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsryjybzv8dn9gn2v8lnr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsryjybzv8dn9gn2v8lnr.png" alt="vibe coding" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
If you haven’t organized your thoughts or content in advance and simply give an LLM a one-line prompt asking it to implement your requirements, you’ll most likely end up with results that don’t meet your expectations. While people turn to AI for vibe coding in hopes of convenience and efficiency, there’s a paradox: to get good results, you still need to describe your requirements with a certain degree of precision. Only then can the AI accurately implement the features you want.&lt;/p&gt;

&lt;p&gt;However, if your descriptions are too precise, it can feel counterintuitive-if you’re specifying everything in detail, why not just implement it yourself? So, the real challenge is finding the right balance: how do you describe requirements precisely enough for the AI to deliver, but still keep the process natural and human-friendly?&lt;/p&gt;

&lt;p&gt;Through my experience, the best approach is to create a &lt;code&gt;devdocs&lt;/code&gt; directory in your project, breaking down features into independent logical modules. Then, let the AI implement each feature based on these descriptions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivxa2oaivtmnvenjqhqy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivxa2oaivtmnvenjqhqy.png" alt="veo2.zone code" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, suppose I want to add a feature to my site &lt;a href="https://veo2.zone" rel="noopener noreferrer"&gt;https://veo2.zone&lt;/a&gt; that grants 1 free credit to new registered users. I would create a file like &lt;code&gt;devdocs/addOneFreeTry.md&lt;/code&gt; with the following content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;20250429

Add one free video generation for free users

1. When a user is not logged in and clicks the generate video button, open the login window to prompt the user to log in.
2. After the user logs in, restore the prompt filled by the user, as well as the selected Quality, Aspect Ratio, Duration, etc. to the state before login.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, in Cursor, I’d chat with the AI and ask it to implement this feature according to the description. The resulting code usually matches the requirements quite well.&lt;/p&gt;

&lt;p&gt;If, the next day, you have new improvements or need to fix bugs, you can simply add to the same file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;20250430

When a user clicks the generate video button and the system determines that the user doesn't have enough credits:

1. Display a popup notification that matches the page's theme style, informing the user that they don't have enough credits. Show an orange button "Get Credits" which, when clicked, opens the pricing component as a modal on the current page.
2. For the pricing component display in the modal, refer to src/app/[locale]/pricing/page.tsx. The pricing modal should have a close button.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach allows you to keep a record of all your key vibe coding conversations, ensuring your project doesn’t descend into chaos as the AI continues making changes. It also makes it easier to track the evolution of your requirements and the corresponding implementations.&lt;/p&gt;

&lt;p&gt;If you’d like to see it in action, feel free to try it out at &lt;a href="https://veo2.zone" rel="noopener noreferrer"&gt;https://veo2.zone&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
