Skip to main content

Souless Vibecoding

·3 mins

Even though I use ChatGPT, Claude and other applications, and even Copilot from time to time for coding, I was never a believer in vibe-coding. Even though I use Copilot, I only use it for autocompletion and never use the chat interface to generate some code. I also accept the autocomplete after going through it, and the autocomplete has helped me to code faster and feel like having a pair programmer. But ultimately, I am the one who is driving the coding. It’s my program.

However, recently I had to do some vibe-coding on two different occasions. One thing was to quickly come up with an interactive demo to show the connection between FHIR CodeSystems and ValueSets. I was about to do a presentation on the fundamentals of FHIR, and the connection between CodeSystems and ValueSets is something hard to explain in a couple of minutes to a crowd that has no experience in FHIR. So I thought I’d create an interactive demo. Unfortunately, my presentation was due the next day, and I had to finalise the presentation. So I asked Claude to come up with a simple demonstration. I didn’t ask him to create a React webapp, but it did. It was a good interactive demo with a graphical representation. I had to tweak it to improve, but it was good enough.

So whenever I came across any FHIR-related concept that I thought would be nice to demonstrate with a graphical representation, I turned to Claude and added more pages to its current React web app, and made my tweaks when needed. I worked on the presentation and plugged in the demo where necessary, and did the presentation the next day. It was well received.

However, there was an aching feeling inside of me. The program never felt like mine; I never felt any connection to it. Something I have not experienced before. I felt it as a program without a soul.

The second time I had to do some vibe coding was when I got a codebase from a colleague, and I had to add a feature to the program while he was away for a week.

Since the program was already a vibe-coded application, after quick studying of the codebase, I prompted Copilot to build an MVP feature for the application. Then again, what I had to build was an MVP of the feature and not the final feature. Since it’s already vibe-coded, and my colleague is going to vibe-code over my code anyway, why don’t I do some vibe-coding on it and let him continue vibe-coding over it when he’s back from his holiday?

So Copilot gave me a fair enough MVP feature, and I was happy with it. And I left it as is for my colleague to come and work on it. However, what I saw was my colleague’s cursor completely overwriting the code Copilot wrote and just creating it again. Even though I didn’t write the code, I felt bad for the time I had put into refining the Copilot code. My colleague never had an attachment to his or my code.

Anyway, at the end of the day, vibe-coding just feels soulless.