Seconded, I love it and I honestly don't know how people deal with configuration without it.
The applications I develop all run in Docker or Podman, with configuration passed as environment variables. Direnv is excellent in dev mode to configure local env vars such as database credentials that only apply to a specific project, and you will have to approve any change before they take effect, in case you made the mistake of committing it. To avoid that, I just have `.envrc` listed in my ~/.gitignore
On its own, it's nice for development for setting stuff like DB URIs, activating Python virtual environments, etc.
But I find direnv indispensable for how it combines with nix (probably asdf would be good enough too) for "project specific tools". -- The convenience here is not having to remember to install tools system wide in order to work on some repository.
direnv hooks into the shell, so that it adjusts the environment variables / PATH when you `cd` into the directory. (Well, you do need to run `direnv allow` to indicate you trust the `.envrc` file).
(Also, `nix develop` drops you into a bash shell, which is annoying coming from fish).
direnv has integration with old nix shell as well as new nix develop. It also happens to have lot more editor integration that can utilize nix indirectly instead of not having access to nix at all.