In my work, I have compiled a list of the best practices of viboxing, but I have not found anything similar on the Cursor forum or documentation. I think this is an omission because these methods are changing rapidly. I am sure that many users had problems with GPT-5 precisely because of poor preparation, while I personally was very pleased.
Here is a set of my universal rules, for example (although these are not all the rules):
21 Rules of Vibe Coding
- Start from a template: Begin your project by cloning a template from GitHub or another source to provide a solid foundation. (On cursor, Start from Repo, and paste this link to build a nextjs app that is prebuilt with AI features, database and authorization GitHub - ansh/template-2)
If the template doesn’t use enough new libraries and components (for example, react 18), it’s better to try updating it right away. You can also immediately perform maximum refactoring, even using custom hooks to “hide” parts of the code from accidental changes. Usually, all this goes without problems, since no new code is added and the logic does not break.
- Use agent mode: Utilize Cursor’s agent mode (not normal mode) to create, edit, and manage files through natural language commands.
Nevertheless, Architect is better for planning, and in the appropriate obvious cases Debug, Ask, Code - although the Agent will most likely guess what to do anyway, sometimes he shows too much initiative or does not build a plan as efficiently as Architect, although for some reason he does not choose Architect mode himself (or not always). The same approach saves tokens and time somewhat.
- Use Perplexity: Use perplexity to find new designs and API’s from the web. Say that you are creating a nextjs project, and that you want to create x feature, and to give you instructions AND code examples.
You can also simultaneously generate a frontend in lovable, v0, or replit, or lovart . Preferably v0 or lovart (from a design point of view).
- Create new chats in Composer: Open a new Composer chat for each distinct task. Keep agent chats short.
You can work simultaneously in different specialized chat rooms, even using different neural networks. Each chat has a specific context and a minimum of noise, and such chats overflow and degrade more slowly, and the service part of the chats can survive the entire development cycle. You can give the title names to chats.
- Run locally, test frequently: Use built‑in servers to run your app locally and test often to catch issues early.
At the same time, it is not superfluous to use the ESLint and Snyk security (or Bugbot) extensions.
- Iterate and refine: Embrace rapid iteration — don’t worry about perfect designs initially; improve them step by step.
Simple things like changing the shape of buttons can also be done by a group - agents can handle changes to a group of 2-3 simple elements without problems.
-
Utilize voice‑to‑text: Use tools like Whispr Flow for faster input, and just vibe.
-
Copy errors and paste into Composer agent: When errors occur, copy error messages from your console and paste them into the Composer agent, and more times than not, it will be fixed. When dealing with errors, over explain the issue if it’s not fixed the first time.
If there are errors in the terminal, the terminal can be added to the AI chat context using @ and have access to the output of commands.
- Don’t forget you can restore previous Composer chats: Save your work frequently so you can revert to an earlier state if needed.
You can specify that in the chats in the command blocks there is a button to undo the “Restore checkpoint" . Checkpoints only record changes created by the AI agent, and manual edits are not saved in them.
-
Secure your secrets: Always store API keys and sensitive data in environment files rather than hard‑coding them.
-
Commit often: Push your progress to GitHub regularly to track changes and safeguard your work. Cursor can do this for you, just ask the agent.
-
Deploy early: Use platforms like Vercel to deploy your app early, to make sure there are no errors on deployment.
-
Keep a record of the prompts that work best; reuse them often: Document your most effective prompts to make future development and debugging easier.
-
Don’t get hung up: reached a dead end or goes in circles - rollback to the committee when something worked and a new one. You can save the current state to a special git library (no-work), roll back the working branch to the working state of the system, and transfer successful features to the no-work branch. But you can try to generate everything anew, and if it doesn’t work out, then take the features from the no-work branch.
-
Use the memory-bank and at the first signs of dementia and walking in circles, you can interrupt the task and ask to save the context in the memory-bank (where the current unfinished task is saved according to the instructions in the rules), feel free to open a new chat and initiate the context from the memory-bank and continue from the same place. Memory-bank in a simple way to use https://gist .githubusercontent.com/ipenywis/1bdb541c3a612dbac4a14e1e3f4341ab , in a more advanced version - GitHub - vanzan01/cursor-memory-bank: A modular, documentation-driven framework using Cursor custom modes (VAN, PLAN, CREATIVE, IMPLEMENT) to provide persistent memory and guide AI through a structured development workflow with visual process maps.
-
Make the most of the MCP: at least context7 and filesystem, the rest as needed.
-
Use user-level and project-level rules. At the user level, you can even set:
- Use context7 tool when you use a new library, create a new integration
- Use Sequential thinking for complex reflections.
- Use context7 to access documentation of all libraries
- To implement any features using integrations with external api/libraries, study the documentation using context7 tools
We must try to keep the rules concise. You can use rules for your project from the rule constructors: CursorList , Cursor Directory , and GitHub - PatrickJS/awesome-cursorrules: 📄 Configuration files that enhance Cursor AI editor experience with custom rules and behaviors (the use of .cursorrules is considered obsolete, but it works equally well).
Also, if you are going to refine an existing project that has been completed at an acceptable level, rather than create a new project, then it is useful to add a clause to the project rules:
- Write code in the same style that is used in the project.
-
You can install the Roocode, Kilocode, and Gemini Code Assist extensions. They will probably do some features or debugs better than a full-time AI assistant and neural network. Roocode and Kilocode also have built-in markets of the best MCP servers that can be installed for these extensions, and then copied and pasted into Cursor settings in Tools & Integrations.
-
Utilize voice‑to‑text: Use tools like Whispr Flow for faster input, and just vibe.
-
Spare no time for the initial setup and any administration of even simple projects.
-
If an AI agent began to successfully complete a task and went beyond it, he began to introduce new features without mistakes - do not interfere with his work, let him finish, even if he deviates from the direct task, since he acts according to a certain successful pattern. Otherwise, he can be confused. It is better to remove or disable the excess later.