Your Framework Is Broken, Not You: The API Design Sin That Cost Me Months
A developer lost three months to a single misplaced db.commit() call buried deep in a helper. But the real culprit isn’t developer negligence—it’s a framework API that makes data corruption trivially easy. This article argues that if an API allows bad state, it’s the designers who failed, not the users. Affine types, compile-time checks, or even a simple runtime guard would have prevented the disaster. It’s time to stop blaming developers and start building systems that make the wrong thing impossible.