Do we just not need an "undo" button? It's an interesting question. There's been previous posts around "soft-delete" and not needing it. Then again whey are there so many ORM's that do this? Why do we have time travel is databases?
Well-implemented undo / undelete features are for regular, long-term, skin-in-the-game users, who are doing real work. Apps & web sites are generally (for the user) cheap, transient fluff for low-stakes stuff. You spend 30+ hours building your 2023 Departmental Planning Documents & Budget in (say) MS Word and MS Excel - which have real undo and recovery features. Not in some app or web site.
Whenever I've implemented undo (or undelete) there's always been a horrible nagging feeling in my head of "What happens if there's a data breach before something gets hard deleted?" People will expect their deleted data to have been properly deleted. If they discover that it wasn't then regardless of how well I explain how undo features have to work there will always be some users who think I lied about the delete feature.<p>It also makes things like GDPR and erasing people's data a little harder (although not much).<p>Hard delete also frees resources immediately, which can save some money at scale.<p>And, ultimately, most users don't expect it in a web app, so you can save time by not building it.