XMonad is nice, but the haskell stuff makes it a chore. There is a great tiling WM called SpectrWM https://opensource.conformal.com/wiki/spectrwm that is a re-implementation of Xmonad in C, with a sane text config file.
Works great for me.
The devs are all current/former OpenBSD guys, including Marco Peereboom (Who forked OpenBSD recently).