:: krowemoh

Friday | 09 MAY 2025
Posts Links Other About Now

previous
next

Vibe Coding with Cursor

2025-05-01
AI, LLM, vibecoding

I've heard a lot of buzz about vibecoding and even read the tweet from Andrej Karpathy about just embracing the exponentials.

I finally got around to giving it a shot as I wanted to making something without really building it because it was something I was tired of doing. This also meant that I was trying to vibecode something that I already understood and had an idea of what the code should look like.

I also wanted to use cursor as I wanted to use the state of the art vibe coding tool rather than try to build out my own flow.

The goal was to create a simple data entry screen into a sqlite database. I wanted to use express with some plain html. It would have a few input boxes, some dropdowns and then a save button to save the data to a table. I also wanted some basic authentication.

I could probably do this in couple hours but it is tedious and this is code that I've already written multiple times and I could copy paste it from all over.

I installed cursor and was able to sign up with my github account so it was actually a great way to onboard. I was able to use the free trial and so I could just get started without having to shell out anything. I already have an OpenAI api key with credits so I think I could have used that as well but I went with the cursor defaults.

I quickly had it create an html page which it did without issue. It took a second but that's the usual AI process.

I truly have no idea how anyone can get into any sort of flow with that latency.

I then had it try to set up a node project so I could install express. This was the first issue. It didn't pick up that I had nvm installed and node 18 installed. I explicitly ran the command in its terminal and then it realize it was there.

I'm not sure what happened here as it was capable of executing commands in the terminal and nvm was in the path.

The next issue was that it looked like the terminal would reset every now and then and the directory the terminal was in would change. The model would try to run some code, fail and then need to do a cd. This was a hassle.

It was also a pretty big friction that I had to accept the changes, I had it be automatic but it still required me to approve changes. I had been hoping to just write and describe code and ideally not even look at the output. That was the whole point of vibing. I just wanted to talk and have an application built.

It eventually got express installed and the server started after much trouble. The next step was to get it to add authentication. This was actually quite simple, it installed sqlite, set up the database with a table for users and set up the auth flow.

This part was relatively quick, there was still lags and issues with not being in the right directory but I wasn't frustrated with the model but with just the time it was taking.

The next part after the auth was to add the data entry screen. This okayish, it took awhile to get the input boxes how I wanted them and the design was still trashy but at least something was on the screen. It took a few attempts to get it to save things to the database, I'm not sure if it did it well or poorly but it did something. Maybe.

I wanted it to create a page with previous entries. This is where it seemed to lose the thread. It created the page but was unable to add it to the header navigation. I'm not sure what happened but multiple attempts didn't solve the issue. I wasn't even sure if the database was properly getting updated.

This is the point where I gave up as the responses started taking longer to generate and the losing directory paths was starting to annoy me.

Something as simple as adding a newly create file to the header should not be this difficult.

Vibe coding ultimately sucked here and it could very well be me. Other people seem to have a pretty good time with it but my experience was lacking. I'm not sure what people are doing so maybe this web project is a bad fit. It could be vibe coding shell scripts is much better but that also feels way more dangerous.

I can't imaging vibe coding a sveltekit project as there are way too many files involved and so many paths that need to be juggled. I thought choosing express and sqlite was keeping it simple but maybe there is something even simpler. Maybe going with something like flask would be better. Maybe even just writing a CLI frontend for sqlite would be better.

The biggest issue however is the latency there is no state of flow and there was no moment where I was actually enjoying the vibes, I was in a state of frustration and expectation. Using a faster model will definitely alleviate this but I'm guessing that is a future thing.