A vibe-coded prototype that demos cleanly has proven one thing: the happy path runs. That is real progress and worth respecting. It has not proven that the thing is safe to put in front of strangers with real data and real money on the line.
Ship as-is is the right call more often than people who sell hardening like to admit. An internal tool used by three people who know its edges, a throwaway demo for a pitch, a design-partner pilot with fake data and a human watching every step: in all of these, a production-readiness pass is wasted spend. You learn faster by putting the rough thing in front of someone and watching what they do. Shipping as-is is also reversible when nothing real is at stake, you can throw it away and rebuild with what you learned.
Hardening becomes the right call when the failure mode stops being embarrassment and starts being damage. The moment a prototype touches real customer data, takes a payment, or carries your name in front of users who did not agree to be test subjects, the missing pieces stop being polish and start being liabilities. AI tools optimise for a working demo, not for the auth, input validation, secrets handling, error handling, regression tests, and observability that keep a production-ready system from leaking data or losing it. None of that shows up in a demo, which is exactly why it gets skipped.
The honest test is one question: what happens the first time it breaks in front of a real user? If the answer is “we laugh and fix it,” ship as-is. If the answer is “we have a data breach, a chargeback, or a customer who never comes back,” harden first. See how we run a production-readiness pass.