πŸŽ‰ New visionOS app launched!: Check it out on the App StoreLearn more β†’

Gabriel Uribe

Top Ten Tips for Vibe Coding with Cursor in 2025

β€’

Vibe coding is incredible for 0->1.

People are building entire multiplayer games within a few hours. But once it's working, you’ll need to get extra crafty regardless of whether you're an engineer or not.

After 21 months, ~$800 spent on a Pro subscription & overages, and 1000+ hours, I've reached Cursor nirvana.

I've compiled my best tips for exploiting Cursor, which generally apply to similar tools like Windsurf, for you to reduce LLM hallucinations, increase your effectiveness, and stay in vibe code flow as you lock in.

Link to this heading1. Plan + Implement > Brute Force

Here, brute force means to simply tell the AI to 'draw the owl' in a single prompt.

Use Ask Mode to plan. You can enhance this by first asking a model like o3 to generate a 'step-by-step plan' for the feature, then switch to Agent Mode with a thinking model like Gemini 2.5 Pro or o4-mini to implement that plan.

Importantly, you should almost always use the state of the art (SOTA) model for planning, like o3.

Why?:

  • planning is the hardest part - Cursor's Agent Mode makes it much easier to implement a plan autonomously afterwards.
  • SOTA models cost more, so it's better to use your most expensive tokens early
  • better planning leads to better results
  • it's much easier to throw away a bad implementation and tweak the plan yourself than to simply try to brute force the AI to plan and execute simultaneously, in which case you have to throw away everything.

Link to this heading2. Use Task Master AI to break down your project into autonomously completable tasks

Big projects overwhelm any AIβ€”break them into bite-sized tasks instead.

Generate a tasks.json from your PRD (or sketch one out yourself), perhaps using a tool like Task Master AI, then feed Cursor each task in turn.

It's the difference between "Build the entire blog engine" (πŸ™‚β€β†”οΈ) and "Create the Post model with title, body, and timestamps" (βœ…).

You'll get small wins that keep momentum up and code quality high.

Link to this heading3. When it comes to prompting, specificity is key

Don't just say "it's not working," paste the error message. Drop a screenshot (the smaller the better to preserve context window) if you're working with a UI.

And if the model you selected doesn't fix the error in the first go, try a SOTA model and/or specifically describe why you think the first fix didn't work.

Link to this heading4. Use MCP servers to improve results

MCP servers let you plug Cursor straight into your data and tools. You can wire up Cursor to Notion or even 3D modeling software like Blender. The upfront setup pays off when you never have to context-switch out of Cursor again.

There's a massive list of MCP servers here.

Link to this heading5. Take advantage of popular cursor rules for your tech stack

Use one of these as a starting point, then customize it to your liking. If you find that you're repeating yourself when prompting, you should probably add a cursor rule.

Link to this heading6. Switch to new chats as soon as you're done with a task.

Saves on the context window which improves accuracy and results.

Also makes it easier to review history to understand what you've done as opposed to one giant thread.

Link to this heading7. Test early and often with AI

Don't wait until the end to test your code. Instead, ask the AI to help you write tests as you build features. This serves multiple purposes:

  • Catches bugs early when they're easier to fix
  • Helps validate your implementation matches the requirements
  • Creates a safety net for future changes
  • Forces you to think about edge cases upfront

For example, after implementing a new function, immediately ask the AI to "write unit tests for this function" or "help me test this edge case". The AI can often spot potential issues you might miss.

Link to this heading8. Utilize Cursor checkpoints

Don't be afraid to start over.

AI can generate hundreds of lines of code in seconds, so as long as you're following the suggestions on this page, eg testing early and often, you should rarely have to throw away that much code.

If you're not trying new things and throwing away some results you're not experimenting enough!

Link to this heading9. Spawn Cursor tabs

With recent versions of Cursor, you can now have multiple tabs with different AIs running simultaneously (on a Mac, Command + T while you're focused on the AI pane)

I find this works well when I have multiple tasks that work across different portions of the codebase that I want to work on simultaneously.

Though I don't recommend doing this if you're not entirely comfortable vibe coding yet.

Link to this heading10. Launch multiple workspaces for the same project

If multiple tabs on the same project/workspace isn't enough, the next levelup is running multiple workspaces for the same project.

There are a few benefits to running two disconnected versions of the same codebase, particularly for larger projects with 10s to 100s of thousands of lines of code:

  1. You can work on different git branches simultaneously, particularly useful if you're working on overlapping functionality on both or just want to partition your work across each feature.
  2. You can run multiple instances of each version of your app that specifically target different features, which can be useful for eg simultaneous debug sessions.

And even if you run into merge conflicts, AI has gotten exceptionaly good at resolving them.

Link to this headingClosing

If you master these tips (small iterations, tasteful Ask vs Agent mode usage, effective prompt and tool usage) you'll be a true vibe coding jedi. Cursor becomes less of a tool and more of a co-collaborator in your creative & engineering processes.

And if you're newer to vibe coding and want support, I also offer this coaching service to help you build just about anything while learning how to do it too.

Finally, if you got something out of this and/or would like to see additional detail, I'd love to hear from you on X (formerly Twitter) or LinkedIn.

Link to this headingRelated

Link to this headingLooking for more posts?

Looking for a full-stack Next.js/iOS/visionOS developer for your project? Email us at hello@skyporch.co.