Vibe Coding with Cursor
Vibe Coding with Cursor
Whether we are just coding with AI or entirely Vibe Coding, we face the same challenges.
The term Vibe Coding went viral in February 2025 and now everyone is talking about it or trying it out.
I have submitted a talk, Vibe coding. The hottest new programming language is English on this subject, to Directions EMEA 2025
There is actually a lot we can learn from vibe coding:
- How do we communicate our needs to the AI?
- Is that similar to how we communicate with a developer?
- What is easy and what is difficult in programming?
- Are some programming languages more suited for development with AI than others?
- Do you need to be a developer to do Vibe Coding?
- How much coding do you actually need to know to succeed with vibe coding?
- Is vibe coding just for fun or can I use it in my work?
What is Vibe Coding?
Computer scientist Andrej Karpathy, a co-founder of OpenAI and former AI leader at Tesla, introduced the term vibe coding in February 2025. The concept refers to a coding approach that relies on LLMs, allowing programmers to generate working code by providing natural language descriptions rather than manually writing it.
Source Wikipedia Vibe Coding
The snake game
Here is an idea for a prompt:
Make the snake game in Elm as we knew it from the old nokia phones.
- Download and install Cursor
- Setup your development environment
- Write your prompt
40 minutes
Within 40 minutes I had a running game on my computer. I was super optimistic. Take into account that I was also playing, I mean testing, the game during that time.
Then …
Several days later
The app was only running on my laptop and I wanted it to work on my phone. This is where the troubles started. I refused to touch the code. I had to prompt my way to the result. However, at one point I had to study the code and specifically ask it to change some of the CSS.
I also had to rollback the code completely a couple of times.
Warning: It is quite addictive.
Project on GitHub
The main branch is the first desktop version and the branch is the mobile-first version. Feel free to star the project and clone it.
You can follow my dialog with the AI in the cursor_create_a_hello_world_app_in_elm.md file.
It is the entire dialog to get to the first version. You don’t want to see the second. It is too long.
The readme.md
is also almost entirely generated with a few prompts stating the sections.
Cursor.com
I used Cursor.com, the AI Code Editor, to realize the project.
I did not write a single line of code, so I did not care about setting anything up.
Programming Languages
Are all programming languages born equal for AI peer programming and Vibe Coding? They are not. Actually, this will challenge our common worldview on programming languages.
What if another language will challenge C#
or TypeScript
simply because the AI works better with it?
Could a small and rather unknown language like Elm
suddenly spring into popularity because it works much better with AI?
Some really interesting articles have started to appear.
- Elm as target language for vibe coding by Wil Chung
- The AI Symbiote: Why Deterministic Languages Are the Future of Coding by Le Jon
This is the reason why I chose Elm for my first vibe programming project.
Elm
A delightful language for reliable web applications.
Elm is a pure functional language for building interactive web applications. The model-update-view architecture has all state management handled in a single model. The strong static type system guarantees no runtime errors. And I just love the helpful compiler messages and easy-to-read code.
If it compiles, it works.
As it turns out, the AI in Cursor also likes the helpful error messages from Elm.
Try Elm
There are a couple of ways to tryout Elm. Here is a few.
Other languages and AL
Since the amount of open source code for a given language is also important for training the LLM, the most popular languages like JavaScript, TypeScript, and Python have an advantage.
A purpose-specific language might also have some advantages. AL is purpose-specific.
AL and AI
Age and how much a language changes plays a role. AL is old and has evolved a lot.
There is no tradition for open source projects on GitHub, best practices were not followed, and
the language has evolved a lot. For example, we no longer write Find('-')
we write FindFirst()
.
So the LLM has to discard what was good in the past and now considered bad.
Where Elm
has been stable for the past five years.
AI assistance helping the AI
When I had trouble with the Mobile-First UI of the Game, I found that the Inspect function in Crome has an AI assistance. I asked how to fix the issue and passed the advice directly to the AI developer in Cursor. Nice!
Conclusion
Are you in a team? Do you work with developers, project managers, product owners, users or managers?
Here is what you should do: Make a team-building event and vibe code something together.
You will learn much more than you could possibly imagine.
Warning: You will have so much fun that you will have a hard time getting back to work.
Have fun and learn