I have typed grep -rn more times in my life than I have said most people's names, so replacing it felt vaguely disloyal. But I have, finally and completely, and I should have done it years ago.
The reason it took so long is that grep -r and find are not slow enough to be painful on small projects. They are slow on big ones, and rg searching a large repository in the time grep takes to clear its throat is genuinely startling the first time. But the speed is not what won me over. It is that ripgrep respects .gitignore by default, so I stop matching half of node_modules and a stray dist/ directory, and fd has a sane interface that I can actually remember without reaching for the man page.
That last part is the real switch. find . -name '*.go' -type f versus fd -e go. One of those I can type whilst thinking about something else. The other I get wrong about a third of the time and quietly resent. Decades of find's syntax never stuck, and I made peace with that by replacing it.
I have kept grep aliased to its real self, because pipelines and muscle memory still want it, and because on a strange box without the new tools I need the old reflexes intact. But for everything interactive, day to day, it is rg and fd now. Giving up the old tools turned out to be easier than defending the habit.