Impressions: Vibecoding

Impressions: Vibecoding
Photo by Raphael Schaller / Unsplash

For all of my tech curiosity and the DIY spirit I cultivate around my digital life, I have no idea how to code. I have attempted to learn multiple times, from clacking out HTML in high school, to taking online Fundamentals of Javascript courses, to signing up for Harvard's free CS50 online lecture series. Much of these attempts into learning to write code can be chalked up to false Zuckerbergian self-mythologizing. After watching The Social Network in high school, I became obsessed with the aesthetics of the loner coder, mashing away at a keyboard,disrupting something, evading frivolous emotional connection. At the end of the day, the closest I ever got to this image was by sideloading mods onto Minecraft (and that's OG Minecraft for the real Mojang heads out there. I'm talking 2013.).

Yet I never lost the compulsion. I was drawn to my previous role as a product manager in part because of the proximity it would give me to the engineers and developers who possessed the wizardry to make code work. I became aware just how profoundly complex the fundamentals of our modern existence are, between APIs and endpoints, software and hardware, data lakes and repos. It is not enough simply to know how to write code; you must also understand, even in abstract ways, how complex systems work.

I grew up in a time when "learning to code" was only just starting to become a trending topic in primary pedagogy. Programs for computer science only began to be offered in my high school as I attended, and I was too old to have ever played with Scratch in my elementary or middle school. Now commonplace institutions like Kahn or Code Academy were only in their early days, and billionaire philanthropists were only just pouring money into the tech programs of public schools. If the flag bearers were to be believed, knowing how to code would be one of the most valuable skills in the job market us kids would inherit.

And that ended up being somewhat true! But the ubiquity of code - all kinds of code - also gave the AI companies an insane amount of training data. AI is now writing a ton of code, as developers employ tools like GitHub Copilot to literally finish their work. There are plenty of arguments one way or the other about what this means for the whole "learn to code" movement but, sitting here right now, the barrier of entry to creating software has likely never been lower, as AI can generate the same code a person can in fractions of the time. This opens the door to an entirely new kind of developer, one who can just kinda make stuff on a whim, feel out a vibe, and ask an AI to deliver.


As Times columnist Kevin Roose puts it:

Vibecoding, a term that was popularized by the A.I. researcher Andrej Karpathy, is useful shorthand for the way that today’s A.I. tools allow even nontechnical hobbyists to build fully functioning apps and websites, just by typing prompts into a text box. You don’t have to know how to code to vibecode — just having an idea, and a little patience, is usually enough.

I have done quite a bit of this so-called vibecoding, even before there was a popular term for it. Last fall, I used Claude to help me develop a daily online word game (it never saw the light of day, if people are interested maybe I'll go back to it lol). Recently, Claude made me a "bookmark dashboard" that I use on my browser as a homepage. And this past week, I've started work on an ambitious social microblogging site using an app called Replit, which uses AI to aid in the full development and deployment of publicly available applications (...email me for more on this if anyone's interested).

Now, I want to make clear that there are still technical barriers between being someone who knows nothing and being someone who creates a functional application, but daily those barriers are coming down. As humans interface more with technology in human ways, it becomes easier for a person's highly specific user needs to be catered to.

For example, say you are someone who enjoys logging all the movies you watch, but you don't want to have to pay for Letterboxd or similar apps. You, right now, can go to a service like Replit and ask for this, and within a few minutes it will have a semi-functional prototype delivered. You can ask for insanely specific things, like an app that tells you how to clean your room based on a picture. To be brief, I think the potential of tools like this is extraordinary, and can help us begin to cut a path away from the Googles, Apples, and Metas of the world that control much of how we do things.

That is not to say that there are inherent shortcomings and dangerous risks to truly democratizing development. If you are someone interested in making things that other people can use, there is a litany of important considerations that a layperson might not consider, like privacy and security, accessibility, or sustainability. Even if you just make apps for yourself, you risk exposing data that the large companies spend a lot of time keeping secure, or run the risk of causing irreparable damage to your existing hardware.


Personally, doing this sort of development scratches an itch for me, allowing me to continue to approach technology from my human-first directive while executing on ideas in a legitimate way. I'm encouraged by the access this could offer, allowing more people who wish for an alternative to existing software to just simply make it for themselves. This, as is readily visible, is extremely disruptive to the legions of developers and engineers out there who have been promised careers for having learned these technical skills, but I fall more on the side that genuine expertise in the field will only become more valuable as more and more shitty code gets written. For now, I believe that this type of coding offers personalization and flexibility for creative types with the patience to make it work.