YouTube Version

I have no doubt that a lot of you who read the title of this post recoiled in horror and asked, “Has Jay lost his mind?”. I also suspect that a smaller percentage of you got really excited and asked, “Has Jay finally seen the light? Is he finally going to join us?” Let me answer all of these questions up front by strongly stating with clear crystal clear precision:

Bugs Bunny saying NO

Now that I’ve addressed these concerns, I’m going to spend some time explaining why vibe coding isn’t all bad. To be clear, I have no love for AI driven development and I have no intention of embracing these workflows. So given that disclaimer, I’d like to address some of the upside that comes with vibe coding, at least what I’ve experienced personally.

For starters, I’m going to confess something. When this trend kicked off, I originally told myself that I was not going to run any software that was developed using AI. Years later it has become clear to me is that this is essentially an impossible standard to meet. Unless of course you only use software written prior to 2024. In that case, I really hope you aren’t browsing the web using a browser that old because it’s full of security holes and there is a high degree of likelihood that you are being exploited. If you are doing that I strongly urge you to proceed with caution and to reconsider this approach. Joking aside if I was interested in trying to do that, right out of the gate, I’m basically screwed. I’m a diehard Penguin (a synonym for somebody who uses Linux and prefers to only use Linux) and its a well known fact that the Linux kernel accepts patches containing code which was written using AI. So yeah, simply because of my choice of operating system, I’m already down and out on that front.

However I doubt you’ll experience more success with other “more” mainstream operating systems, at least not when you consider how much the companies behind them are also pushing AI and vibe coding. Windows of course is owned by Microsoft and they’ve been snorting lines of AI incessantly for years on end now. Their stance on AI and Vibe Coding could be best described by comparing it to Tony Montana’s stance on cocaine at the end of the movie “Scarface”. MacOS is owned by Apple and while that one isn’t quite as clear, I would venture to guess that its very likely that current versions of MacOS contain code written by AI. Finally ChromeOS and GoogleOS are obviously going to contain AI code given how hard the company behind them, Google, has also been pushing AI. I figure the same judgement likely applies to the mobile operating systems offered by these companies as well.

But let’s put a pin in the operating system level of this discussion, because that’s just a pit of despair. What I want to focus on here can really be represented in a single meme that somebody posted in Slack at work this week. On the surface this meme seems to contradict the point I’m building towards, but don’t worry I’ll explain that in relatively short order.

Meme illustrating that all we really need to do is Talk to Customers and then Fix the Problem

The meme above is mocking the engineering obsession with the current AI workflows and contrasting this against what we should actually be doing: Talking to customers and fixing the problem. It uses the backdrop of the Turkish Shooter who won a silver medal in the 10m Mixed Air Pistol event at the 2024 Paris Olympics by merely showing up and shooting his pistol appropriately. Meanwhile, a lot of competitors from a variety of other countries came equipped with all kinds of other tech and couldn’t do half as well.

So yeah I can already hear you all asking, “Doesn’t this meme disprove your point?” No it actually doesn’t. Here is why: I have realized that the deeper we go down the engineering rabbit hole, the more we focus on things that as it turns out, don’t actually matter that much. In my experience many of the engineering conversations we have at work are centered around AI related workflows and tooling and frankly I just kind of zone out or do something else when this happens. As you all well know, I just don’t care. One reason for that is I believe that the sad truth is that when it comes to the pursuit of “better” software the term “better” is entirely relative and shifts drastically depending upon your point of view.

To put this another way: No end user gives a shit about what model was used or what harness you used or what custom MCP server you spun up. They don’t care. Just like they don’t care what language you used to create the software or what libraries and frameworks you choose to build features on top of. These are all things that we endlessly obsess over that end users have never and likely will never care about. So what do end users care about? Useful and working software. They want reliable tools that they adopt as part of their workflows and not come to regret that choice later on down the road.

Well in my own personal experience, the widespread availability of vibe coding tools and relatively low token prices for the models one can use to drive them has resulted in a massive swath of applications being released. Most of these applications are shit. However some of them are actually pretty goddamn good. I’m now going to focus on a specific use case of my own in which this recently became clear to me.

Here at home I use an open source media server called JellyFin (which to be clear is a free alternative to something like Plex and I won’t link to that because nobody should be giving Plex their money). Using it I make my large collection of digital movies and tv series (all legal of course) available to various clients within my network.

However for years I’ve had a nagging issue with this. I use Apple TV devices on all of my TVs instead of the built-in Smart TV OS and none of the current JellyFin clients really had all of the features I wanted. For my wife and I the biggest features we want all revolve around subtitles. Examples include the ability to search for subtitles and apply them while a piece of media is playing. We also like to be able to apply a positive or negative offset to subtitle timings in the event that they aren’t quite in sync (this happens reasonably often when you download subtitles). In the prior years I used a proprietary piece of software called Infuse to accomplish this. Infuse can interact with JellyFin in one of two ways: Library mode (which installs a plugin on the JellyFin server and uses that plugin to query its contents) and Direct mode (which uses JellyFin’s own APIs and requires no proprietary plugin on the server). Well for a long time I used Library mode but over time my library reached a size where Library mode no longer functioned reliably. This sucks because Library mode was pretty awesome except when you had to refresh it to get new content to show.

So that’s when I switched to Direct Mode… and that’s when my experience with Infuse got way worse. Mostly because all of the other features I relied upon just didn’t work or were non-existent. For instance in Library mode Infuse had top tier search and classification abilities. However in direct mode search doesn’t work right and returns very few results. Automatic genre classification is also non-existent in this mode. Despite making several posts to the Infuse forums and their subreddit, these issues haven’t been addressed. To be stunningly clear: Infuse is a proprietary piece of software and I paid $100 for a lifetime license to it. For years it was great but eventually it became clear that the Infuse developers were not interested in fixing the problems with my use case. At some point I started looking for alternative clients.

Now, I’m not going to list most of the clients I’ve tried as there are a ton of them nowadays thanks to vibe coding. I am going to talk about the one that has become my new go to client and yes according to the author it was entirely vibe coded. The name of this client is Sodalite. Here is the Github repo. The very first commits in this repo occurred in mid April of 2026. How do I know its vibe coded? Well it’s because the author has gone out of his way to make this clear near the bottom of the README file in the repo:

Sodalite is vibe-coded, designed and shipped by Vincent Herbst in close pair-programming with Claude (Anthropic). The commit log is the receipt: nearly every commit carries a Co-Authored-By: Claude trailer.

So you may be wondering, how does this prove my point? Well this app proves my point because like everything else nowadays, the developer has created his “own” Discord server. On that Discord server you can submit feature requests and talk to the developer and guess what? He’s listens to people’s feedback. He takes action based on that feedback. When I first used this app, it had pretty solid subtitle search integration but it didn’t have the ability to apply a “positive or negative offset to subtitle timings in the event that the timing was a bit off”. So I went on the Discord and asked. Within a day or two the app had that feature. For what it’s worth I have had a similar experience with another vibe coded JellyFin client called JellySee (despite its very cool icon, that one is paid and not open source, hence my preference for Sodalite).

Now let me be clear: I have serious concerns about the ability of these kinds of apps to be maintained, especially in the event that access to frontier models is cut or becomes a lot more expensive. However as an end user, I can’t deny the upside here. A properly motivated individual can actually produce some really great things in a very timely manner and if that properly motivated person actually engages with their user base and responds to their feedback, the potential upside is insanely high here.

In my mind, this is the kind of thing we can learn from vibe coders. Maybe vibe coding lasts, maybe it doesn’t. I don’t really know at this point. What I do know and what I’ve known for many years now is that having a conversation with your users and caring about their problems is a non-optional ingredient when it comes to producing great and ultimately useful software. This is something that this industry has clearly forgotten and with each passing day my memories of it working this way seem just a bit more like a fever dream rather than a fuzzy remnant of the past.

These vibe coded apps have given me hope that we as an industry can still fix this problem. We just have to give enough of a damn to open our ears. Then we have to engage in a conversation. Then we have to commit to go right on doing that for as long as we are producing software and as long as people are using it. If we don’t do that, it won’t matter how advanced the models, the MCP servers or the harnesses get, because eventually the customers will move on and attempt to find greener pastures… and you can bet your bottom dollar that in the age of vibe coding, somebody will eventually decide to address their needs.

Wouldn’t you rather it be you instead of them? Because at the end of the day, if they can do it, so can we. Just because they aren’t engineers in a traditional sense, it doesn’t mean we can’t learn from them.