“Good error messages are important, but the best designs carefully prevent problems from occurring in the first place. Either eliminate error-prone conditions, or check for them and present users with a confirmation option before they commit to the action.” — Jakob Nielsen
Below are six small, working demos. None of them will stop you from making a costly mistake — that's the point. Try each one, then click “Reveal what actually happened” to see what a safer version would have done differently.
“Save draft” and “Delete forever” are the same size, same style, and sit right next to each other with almost no gap. Either one fires instantly, with no confirmation on the destructive one.
The button never disables itself and there's no debounce. Click it twice quickly — maybe because nothing seemed to happen the first time — and you'll place two separate orders instead of one.
Orders placed: 0
No date picker, no input mask, no format hint, no validation while typing. Type anything you like — words, symbols, an impossible date — and it will be accepted without complaint.
This button looks exactly like an everyday, low-stakes action — because nothing about its size, colour, or lack of confirmation reflects the fact that it emails 4,000 people the instant you click it.
Click into the quantity box, then scroll your mouse wheel over it (a well-known browser quirk changes number inputs on scroll) or press an arrow key. Every change — accidental or not — instantly finalises the purchase. There is no separate “Buy” step to catch a slip.
Six destructive “revoke access” controls, packed 2 pixels apart with no labels beyond a number, each firing immediately and permanently on a single click. There's no room here for a steady thumb, let alone a confirmation step.