Backlog 10 - Slopware: The end of well-made code

career14 min

byLucas Santos

This page was machine translated. Read original / Suggest a fix

In the last Backlog I talked about something that had been bugging me a lot over the past few months: the fact that devs today are getting lazier and delegating more and more tasks to AI. Since then we’ve had the advent of this here, which I’m now naming Slopware:

If you’re out of the loop on tech world complaints, this is Fly Pieter, a game created by the same Pieter Levels (who I mentioned in the previous Backlog) using nothing but willpower and a Cursor subscription. I tried playing it, but apparently after 20s of gameplay I couldn’t connect to any server (I’m guessing it’s because my setup blocks trackers).

As you can see, the game isn’t a work of art, but that’s fine, graphics aren’t the most important part of a game (I play Tibia and Dwarf Fortress), it’s the gameplay, the story, and so on. The problem is that this game has none of those qualities… It’s just a bunch of people flying around and watching ads. And yet, it generates 1 million dollars a year in revenue (according to the creator). My question is simple: why? Simple… Audience.

The audience effect#

I have a very strong opinion about this whole situation: I don’t agree with the people who are worshipping this guy just because he “created” a game and made millions with it. I think our idols are in the wrong places.

Recently Felipe Deschamps posted this tweet:

And he’s right. Levels has been building this for who knows how long, and I have no problem with that. But it’s a fact: this only worked because he has a huge audience, almost a cult of people who idolize him because, somehow, the number in his bank account is bigger.

As long as the masses keep idolizing millionaires and billionaires, we’ll have the same problem: they sell whatever they want, whenever they want, simply because they are who they are.

The best example of this is exactly this game, which is basically an ad showcase. There’s nothing you can actually do while playing, it’s just flying around, shooting other people, and watching ads. And that’s it. Which, by the way, is reflected on the login page:

When you want to promote your startup, you’re taken to a Stripe checkout page and, for the small sum of 5,000 USD a month, you can put whatever you want on the balloons.

Now tell me: if a big gaming company, say, Blizzard, did the exact same thing, would you be happy about it or pissed off? So why the double standard? I think you get where I’m going with this.In this video (which I’ll show later on), Max makes the same point. This isn’t something most of us could pull off. It’s something only he can do, precisely because of this cult of money.

And if these companies have so much money, why not sponsor a game from a small indie developer or a small company working hard to get their game published? Simple: those people don’t want to ruin their game with ads. The ones who do this are only the people who don’t care about the product, just about the money at the end of the day.

And not everything has to be about money. As long as that’s the mindset, all we’re going to get are badly made products, full of empty promises.

Vibe coding#

This game was built using a model that has apparently existed for about a month now: vibe coding. A term coined by Andrej Karpathy (one of the founders of OpenAI, so no bias there…) and shared in a tweet:

Basically, the idea is to accept absolutely anything the AI spits out at you. You’re not coding anymore, you’re chatting with an AI agent. It suggests the code, you accept it without reading it. If it errors out, you just copy the error message and paste it back into the AI, and you keep going like that until the app works.This model reminds me a lot of an algorithm called Bogosort, where you shuffle a list until it “sorts itself” out.

I can’t even begin to describe how much I’m against this kind of thing. Simply accepting anything an AI suggests to you is the equivalent of going to the hairdresser and trying out new haircuts until one of them works out.

And to top it off, we’ve got this fantastic video from Y Combinator explaining why vibe coding is the future:

Play

The most interesting part is that this video is so weird, in so many ways… The comments sum it up much better than anything I could say here:

"100x faster? What are you guys building? To-do lists?"

"Vibe coding is the future until you need to do some 'vibe debugging'"

Garry Tan himself says one of the things that became clear from the research is that: “Vibe coding is very hard to debug”. I wonder why… Maybe because you don’t understand a single thing of what’s written there? Or maybe because debugging is 90% of being a programmer?

On top of that, I found the initial research kind of weird. The proposed hypothesis is that vibe coding is the future, but the research that was actually done was about “how founders use AI day to day”. That’s a classic example of the Strawman Fallacy, when you try to prove a completely different point from the one being debated, creating a connection between them that doesn’t actually exist. It would be like testing the hypothesis that “people prefer motorcycles to cars” by asking whether they used to ride bicycles as kids.

However, at minute 17, Diana Hu says something that makes sense and that I actually agree with: to produce a product really fast, there’s nothing wrong with using something like this to speed up development. The problem is thinking we can build entire companies this way.

Just a reminder that if AI turns you into a 10x engineer, then you’ll probably be replaced by an AI in the near future.

While the Y Combinator video is weird but shows the perspective of the side that wants to make more money with less work, another interesting perspective was given by Maximilian Schwartzmüller on his own channel:

Play

And I want to cover this one in more detail.

Something to start with#

Vibe coding is a cool idea for quickly prototyping, testing concepts and validating hypotheses without spending too much time. But when we’re talking about something really serious, a product that a lot of people depend on, that needs to be reliable and sustainable in the long run, you can’t treat the code like a disposable experiment. You definitely don’t want something to “sort of work” when it goes to production, because “sort of” in technology means unpredictable bugs, security flaws, and, in the worst case, an entire system breaking down at the most critical moment.

Andrej himself mentions this in the original tweet. So no, vibe coding isn’t the future of software engineering, it’s just a way to quickly test ideas, without much strategic thinking, to see if something works out. And even when it does, there comes a point where that code needs to be rewritten the right way.

The dangers of vibe coding#

Going back to the flight simulator case, in that same video, he shows the game running in production, with thousands of people accessing it. At the five minute mark, he also reveals that the code was vulnerable to XSS (Cross-Site Scripting).

"It's all fun and games until someone 'vibe codes' your banking app"

The problem isn’t giving up on coding or pretending to code. The problem is asking an AI to write the code, not understanding what’s going on, shipping the code without questioning it, and still ignoring even the bare minimum of security. That puts not just your company, but thousands of other people at risk, all because you consider yourself a “10x engineer”.

In this specific case, the attackers started injecting elements into the game. It was “super cool” for Pieter, but if it had been malware, I bet it wouldn’t have been quite as fun…

There’s always a bias#

Ideally, both AI companies and VCs want this to become reality for two reasons:

  1. AI companies want to keep their valuation up, and it’s obvious that “vibe coding” is good for them. The more people depend on AI to generate code without understanding what’s going on, the more they consume and buy these companies’ services.
  2. VCs, like Y Combinator, are focused on one single thing: money. If you can cut the cost of hiring developers, that means more money in your pocket. And a lot of these VCs also invest in AI companies, which brings us back to point 1.

My point is this: everyone who says that “vibe coding”, or AI generating code and solving everything, is “wonderful”, “the next step” or “the future”, usually has some personal interest in making that true.

My unofficial theory is that, deep down (or maybe not so deep down), a lot of these people are trying to devalue developers, because they’re essential in a tech economy, and good developers are expensive. It’s an attempt to say: “Whoa! AI can do this too, so maybe you’re not worth all that much.” The goal, at the end of the day, is to pay less and still get the same result. Once again, it all comes down to making more money, faster.

But, to be fair, I tested “vibe coding” myself.

My experience#

I posted this tweet talking to the frontend crowd to do this challenge. The idea was just to generate a search input that looks exactly like this one:

Igor later gave me the idea to try generating it with AI, which hadn’t crossed my mind, maybe it could work out. But I was completely wrong. I tested four different generators: Lovable, V0 (which has a feature to copy from a screenshot), Bolt and Cerebras. Here’s what I got:

Lovable

Bolt

V0

Cerebras

Not exactly what I wanted when I wrote a prompt like: “Copy this component exactly”. Even after 35 minutes of back and forth with the AI. So I guess I won’t be “vibe coding” any time soon.

The problem with Vibe Coding#

For me, the problem with “Vibe Coding” isn’t really about the code being generated, we’ve already had something similar with assistants like Copilot for a while now. When I say I “like writing code”, what I mean is that this is the point of a project for me. I want to be involved in the coding process, but, of course, I don’t do everything by myself. I don’t type every single line or every single letter, which is why I can use assistants to help me.

The real problem, as I see it, is not being in control. It’s unacceptable to me to “create” a product that I have zero control over and no idea how it works, let alone put it in production for other people to use. When I use assistants, I’m the one in control. I steer what I want done.

More than that, if you don’t like writing code, maybe it’s time to rethink whether programming is the right profession for you. As developers, we need to like programming itself. I’m not a fan of bugs, obviously, but I can’t deny that I feel a lot calmer and more at ease when I’m writing the code.

On top of all that, going back and forth with the AI trying to get it to understand what I want is a lot less productive than just writing the code myself.

I genuinely don’t understand why some people want to stop writing code.

For someone who doesn’t know a thing about programming, “vibe coding” can be a good path, but it’s an all or nothing deal. If you want to build something really fast, simple and straightforward, and you don’t care that much about the details, go for it. But please, don’t put other people at risk because you don’t know what you should have done yourself.

You’re a hypocrite!#

People can call me a hypocrite, since I also use AI for other things. That’s no lie, I really do use artificial intelligence. However, something I don’t do is let it generate anything that goes into production, whether that’s code, text, or anything else.

I see AI in a positive light when it’s applied to something useful. Examples of that are right here in this newsletter! I always do a review pass to make the text more concise, fix punctuation, but all the original content is mine, written by me, letter by letter (no autocomplete). When AI is used with a purpose, it can be very effective. The problem shows up when “using AI” is seen as an end in itself, rather than a solution to a specific problem. “Something with AI” isn’t a purpose. It’s simply a solution looking for a problem.

Slopware#

I follow a newsletter called “The Honest Broker”. In it, author Ted Gioia published a really interesting post about the new “art movement” called slop. Which is the idea that those absurd AI-generated images could become a real movement… For example:

This is considered slop

The worse, the better; the more absurd, the better; the weirder, the more people are going to buy it. And if you remember the start of this newsletter, that’s exactly what describes our game: something absurd, badly made, but that people love for an even more absurd reason: the desire to not be left out. It’s like a kind of social phenomenon, where the status of “being in” becomes more important than the actual quality of the product. And that’s what brings us to the concept I’m presenting in this issue: Slopware.

Slopware is the kind of software that gets thrown together however

Slopware is the kind of software that gets thrown together however, with no clear vision or defined goal. It’s probably generated, for the most part, by AI, and it passes itself off as a serious product. The problem is that, most of the time, the creators of these products have zero idea how the software was actually built or how it works. It’s like a simulation of something “sophisticated”, but in reality it’s just a pile of solutions that somehow turn into a usable product, or at least consumable in some way. This becomes even more ironic when we see this kind of software being sold as innovation, even though the creation process itself is disorganized and makes no sense.

In the same newsletter, Ted puts up 4 images that look like slop but aren’t:

These images show something deeper: they illustrate how, in the real world, people are putting in effort to reach the same mediocre result that AI already delivers automatically. The goal behind this seems to be normalizing the idea that badly made is the new good. That happens because, in a scenario where everything around us is of questionable quality, anything that stands out even a little, even if it’s bad, becomes relatively amazing. When the bar is low, even the bare minimum of effort becomes a huge accomplishment.

And that’s where my biggest fear lives: that this concept of slopware spreads to software as a whole. Imagine a future where our apps, tools and systems are built without much care, with AI simply creating something that works on the surface, but that’s nothing more than a quick, substance-free fix. Instead of aiming to build software that’s robust, well architected and secure, we’ll accept as normal a product that just “gets the job done” in a mediocre way.

That would represent a huge paradigm shift, where, instead of having software designed with quality and purpose, all of it would become examples of slopware, and anything that strayed even slightly from that mediocrity would be seen as a genuine revolution. The problem is that, deep down, this would lead to an overall drop in quality, putting at risk the trust we place in tools that are essential to our everyday lives.

That’s it. Happy vibe coding.