Vibe Coding with AI Editors: Windsurf & Cursor
Windsurf and Cursor built on top of Foundational LLMs

Vibe Coding with AI Editors: Windsurf & Cursor

Recently, I experimented with two AI-powered code editors—Windsurf and Cursor—to build practical applications:

  • iOS Survey Data App: A mobile app serving as a personal audit checklist related to the "Four Horsemen of the Apocalypse" in health—cardiovascular disease, cancer, neurodegenerative disease, and metabolic disease (type 2 Diabetes).
  • Health Data Visualization App: A React app for parsing and visualizing XML data exported from Apple Health.


Article content
Experimented with building two apps (1) iOS mobile app for personal audit checklist (left) (2) React app for parsing and visualizing Apple Health XML file

I chose these projects to truly test how effective these AI tools are for full-stack development (frontend and backend) using a conversational, chat-based coding style (aka "Vibe Coding").

What I Learned from My Experience:

✅ What Worked Well:

  • Quick generation of boilerplate code, accelerating early development stages.
  • Helpful for rapidly prototyping and experimenting with ideas.
  • Cursor provides proactive debugging hints, helping catch issues earlier.
  • Windsurf is excellent at managing multi-file setups with collaborative features like Cascade and Flows

❌ Challenges and Observations:

  • Preparation is Essential: Clear understanding of project goals, architecture, data flows, and user interactions is critical. Without this clarity, AI tools become far less effective.
  • Complexity Beyond Code: Real-world applications involve data integration, connectors, and definitions of metrics—areas where AI editors currently struggle.
  • Debugging is Reactive: AI editors often suggest debugging only after errors occur, rather than proactively. Errors made by AI models are also sometimes unusual or "non-human," complicating the debugging process.
  • Inconsistent AI Behavior: AI tools switch unpredictably between recommending copy-paste snippets and directly editing code, disrupting workflow.

AI tools are not always able to fix or understand bugs, requiring experimentation with unrelated changes until problems are resolved.” — Andrej Karpathy, AI researcher and co-founder of OpenAI

"Vibe Coding" Best Practices:

  • Clearly define your project’s requirements, data flows, and overall architecture before coding.
  • Treat AI tools as collaborators or assistants, not replacements.
  • Anticipate manual intervention for debugging and system integration tasks.

Switching Between AI Models (LLMs):

When one AI model gets stuck, switching models can be useful but brings its own challenges:

  • Different integration requirements for each model.
  • Potential inconsistency in outputs and interpretations.
  • Increased complexity in maintenance and monitoring.

Best Practices for Managing Multiple LLMs:

  • Implement abstraction layers for easy switching.
  • Standardize inputs and outputs.
  • Regularly monitor performance.
  • Document clearly each model's strengths and limitations.

Vibe coding your way to a production codebase is clearly risky. Most of the work we do as software engineers involves evolving existing systems, where the quality and understandability of the underlying code is crucial - Simon Willison, Software Engineer and AI Researcher

In summary, AI editors like Windsurf and Cursor are powerful, especially when used with the right planning and expectations. They’re improving quickly and add a fun dimension to coding.

Love where this vibe coding trend is going — it’s not just a style, it’s a movement. By the way, I own vibecoders.com — feels like the perfect domain for a brand riding this wave. If you’re building something exciting in this space, let’s connect!

Like
Reply

To view or add a comment, sign in

More articles by Jayant Kumar

Others also viewed

Explore content categories