A further alternative is https://github.com/brookhong/Surfingkeys. Its key feature is a javascript configuration - allowing you to bind arbitrary javascript to a key.
I remember switching to Firefox for it and loving it. But Safari gives me like 3-4 extra hours on an M1.
It's also available on GitHub if you're not interested in the Mac App Store: https://github.com/televator-apps/vimari
It works pretty well, but I've strayed away from using Vim & Vim bindings for everything after getting into using Emacs on my Linux box at work.