Build Today, Learn Tomorrow: In Defense of the Slop Fork
I forked a React library, pointed AI at it, and had a Vue port working in an afternoon. It's a slop fork. It works. I'll take that trade.
Zain Wania3 min read
Streamdown is a small, clean renderer for streaming markdown, the kind you need the moment you put an LLM response on screen. It exists for React. It doesn't exist for Vue. If you're building in Vue and want the same thing, your options are to stitch together Stack Overflow answers, write it yourself, or go without.
I picked a fourth option. I forked it, pointed AI at it, and had a Vue port working by the end of the afternoon.
The code isn't beautiful. I didn't write every line, and I couldn't defend every decision in it from memory. By most people's definition it's a slop fork.
It also works, and before that afternoon nothing did.
Two kinds of slop
Slop earned its reputation. GitHub is full of AI-generated repos that are half finished and wrong in ways you only find out about in production. Someone thought "I could make a tool for that," let a chatbot do the rest, and walked away. Nobody reviews it or maintains it, and it collects stars from people who assume it's useful.
That's one kind. The other kind fills a gap that was actually there. The first is noise. The second is an unglamorous fix for a real problem, and I think we keep lumping the two together.
The Vue port is the second kind. Vue apps render streaming markdown too, and now there's a library for it.
The order of operations flipped
What interests me more is what AI did to the sequence.
It used to be that if you wanted to build something you didn't understand, you were stuck. You had to learn enough to build it first. So the thing got built slowly, got built badly, or didn't get built. Learning was the price of admission.
Now you can reverse it: get the thing working, then go back and understand what it's doing. You still do the learning. You just do it with a working program in front of you instead of an empty file.
For niche work like ecosystem ports, which nobody is going to write a polished library for, that matters a lot.
I don't have perfect command of every part of the port. I understand it well enough to use it, debug it when it breaks, and improve it over time, which is more than I knew before I built it. "I used AI to build this" and "I don't know what I built" are further apart than people assume.
The fine print
None of this means AI-generated code is fine. Plenty of it isn't. You still need to know enough to judge what you got back, to notice when it's subtly wrong, and to make the tradeoffs yourself. AI doesn't replace that judgment. It lowers how much you need to know before you can start.
What it gives you is permission to solve your problem today and let your understanding catch up tomorrow.
Vue needed a Streamdown port, and now it has one. It's a slop fork, it works, and I'll take that trade.