Glad to see jj mentioned with respect to use interfaces. I switched from the git cli to jj wholesale two years ago now, and I've never considered going back. It is just dozens and dozens of small quality of life improvements that culminate in a significantly better overall experience.