Reminds me of our own quest to stop users from deleting their entire projects by accident in our product.
1st iteration: delete button with a confirmation box (standard stuff). Users click through the box in autopilot mode and still delete their entire projects.
2nd iteration: someone came up with an idea: confirmation box + an additional checkbox (if it isn't checked, the delete button is disabled). Users still manage to delete projects by accident. When we asked them how that happened (we've set up so many hurdles!), the user says, just like in the article, that they thought they were deleting a different (test) project.
3rd iteration: I suggested showing the number of objects in the project (just like suggested in the article) so that the user knew they aren't deleting a test project.
I moved on to a different project since, but the saga probably continues.
So, for projects with 100+ stars, add a wait period of 60 seconds until the delete button can be clicked _after_ the number is typed in. That should allow most users on autopilot to snap out of it, or make drunk users switch to a different tab and forget about it.
GitHub also makes you type out the project name and that still did not help here.
I guess users will always be able to fuck things up.
Best solution would be to offer undos but then people will complain that deleting things does not actually delete. You are keeping data to yourself! Start citing privacy issues etc.
1st iteration: delete button with a confirmation box (standard stuff). Users click through the box in autopilot mode and still delete their entire projects.
2nd iteration: someone came up with an idea: confirmation box + an additional checkbox (if it isn't checked, the delete button is disabled). Users still manage to delete projects by accident. When we asked them how that happened (we've set up so many hurdles!), the user says, just like in the article, that they thought they were deleting a different (test) project.
3rd iteration: I suggested showing the number of objects in the project (just like suggested in the article) so that the user knew they aren't deleting a test project.
I moved on to a different project since, but the saga probably continues.