I'm surprised no one has mentioned https://github.com/koekeishiya/yabai -- it takes a little work to setup but it's well worth the effort. It's keyboard centric and auto lays out windows nicely.
TLDR: use yabai to manage windows and skhd to bind key bindings to yabai commands.
https://www.greghilston.com/post/tiling-window-manager-on-os...