{"slug": "stop-calling-every-prototype-ai-slop-that-s-how-you-ship", "title": "Stop calling every prototype \"AI slop\" — that's how you ship", "summary": "Developer Remo Jansen announced rflct, an ahead-of-time reflection metadata layer for TypeScript 7, built in a single evening after dismissing critics who called his RFC 'AI slop'. Jansen argues that LLMs have collapsed the cost of experimentation, shifting developer value from code writing to problem definition and architectural judgment.", "body_md": "# **Stop calling every prototype \"AI slop\" — that's how you ship\n\n`tsgo`\n\ncompiler.The first reply?\n\n> AI slop\n\nCool. I closed the tab and went to build it instead.\n\nEighteen months ago I'd have said that's crazy talk. Shipping a working repo with a runtime, compiler-side implementation, types, tests, examples, and a CLI in a single evening used to require a small army and a weekend hackathon. Instead I pushed a fresh repo called [rflct](https://github.com/remojansen/rflct) — alpha quality, plenty of rough edges, but real enough to run, test, and hand to other developers.\n\nThe math on that has changed fundamentally.\n\n## The experimentation tax just collapsed\n\nFor years, turning an architectural hunch into something executable meant paying a brutal tax: dig through API docs, sketch the design, write the code, debug it, write tests, fight edge cases, then maybe discover it was all wrong. When that loop costs days or weeks, developers go conservative. You bet big on one idea and live or die by it.\n\nLLMs don't just type faster. They make the gap between \"what if this worked?\" and \"let's find out\" almost free. That's the part most people are still sleeping on — the value isn't in the code churn, it's in the volume of experiments you can afford to run.\n\n## This wasn't about replacing thinking\n\nInversify was built around TypeScript's legacy decorator metadata. It worked great — parameter injection could infer types automatically and that felt magical. But the ecosystem evolved. TC39 decorators dropped the parameter decorator mechanism, and `design:paramtypes`\n\nmetadata lives in the legacy world. Meanwhile `tsgo`\n\nis pushing an IPC-based compiler model. The problem was already there.\n\nMy RFC was deliberately exploratory. Open questions, things that needed prototyping, assumptions that could be wrong. That's the whole point of an RFC.\n\nSomeone decided the most helpful feedback was \"AI slop.\"\n\nSo I built the prototype instead.\n\nrflct is an ahead-of-time reflection metadata layer for TypeScript 7. Instead of runtime decorator metadata, it generates the metadata at build time. The hard part — identifying the problem, deciding the architectural trade-offs — that all happened before AI entered the picture. What changed was the cost of turning those decisions into something runnable, testable, and shippable.\n\n## The job moved up the stack\n\nWhen writing code gets cheap, writing code stops being the scarce resource. The real work moves up:\n\n- What problem are we actually solving?\n- Is this the right problem, or the easy one?\n- Is this architecture defensible under real constraints?\n- What should be tested, and what shouldn't be built at all?\n- How do we know the result is correct?\n- What breaks in production, and how do we catch it?\n\nAn LLM can spin up a function, no question. But deciding which functions matter, which trade-offs are worth making, and which edge cases will haunt you at 2 a.m. — that's still human territory. The tools just made the experimentation loop fast enough that avoiding it entirely looks a lot more like laziness than rigor.\n\n[Next I finally found a way to run a personal AI agent without handing →](/en/threads/8032/)", "url": "https://wpnews.pro/news/stop-calling-every-prototype-ai-slop-that-s-how-you-ship", "canonical_source": "https://promptcube3.com/en/threads/8054/", "published_at": "2026-08-28 21:46:26+00:00", "updated_at": "2026-08-28 22:20:45.454564+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence"], "entities": ["Remo Jansen", "rflct", "TypeScript 7", "Inversify", "tsgo", "TC39"], "alternates": {"html": "https://wpnews.pro/news/stop-calling-every-prototype-ai-slop-that-s-how-you-ship", "markdown": "https://wpnews.pro/news/stop-calling-every-prototype-ai-slop-that-s-how-you-ship.md", "text": "https://wpnews.pro/news/stop-calling-every-prototype-ai-slop-that-s-how-you-ship.txt", "jsonld": "https://wpnews.pro/news/stop-calling-every-prototype-ai-slop-that-s-how-you-ship.jsonld"}}