Best shell UX for minimal effort is: fish shell + starship prompt.
Using starship for the prompt provides many pretty UX improvements (showing current git branch, language version, kubernetes context, etc.).