Written by
Cayu
Published on
Nov 16, 2025
Disclaimer: there are many factors. Starting from this though.
Every AI coding demo feels magical. Prompt → sleek UI → dopamine hit.
Then everything breaks. State resets. APIs timeout. The AI keeps “fixing” itself, and your credits vanish.
This isn’t about intelligence. It’s about determinism, or the lack of it.
1. The illusion of progress
Frameworks like Next.js look powerful: mix client + server code, stream components, auto-generate routes. But behind that flexibility is chaos. AI has too many options to decide from. Maybe gets into the "analysis-paralysis" (note: share if you know articles as how AI decides the best option)
Every render can run in a different order. Every API call can race another. Every hook can re-fire for reasons even senior devs can’t trace.
AI doesn’t intuit side effects — it reasons step by step. And when the same function behaves differently each time, reasoning collapses.
2. The cost
In more structured systems (like Rails or Django), one reasoning pass is enough. In unstructured ones, AI must re-try, re-run, re-debug.
Each pass reloads context, burns tokens, and compounds compute costs. That’s why a $5 prototype becomes a $50 run — the Next.js tax.
Example:
useEffect(() => {
fetch('/api/data').then(setData)
}, [user])
If user isn’t ready, data fetch fails. AI adds guards, retries, delays, fixing one bug, breaking two others.
3. The way forward
AI needs a bit more structure: one runtime, one memory, one state.
That’s why frameworks like Rails and Django still matter: they’re boring, predictable, and reason-friendly.
Until we rebuild AI’s coding environments to favor determinism over flexibility, we’ll keep paying for the illusion of progress: fast dopamine, slow production.


