If anything it reminds me more of the experience with using awesome v2(before lua); you generate a config file for the base WM, and then build up external tooling to drive it how you see fit. The experience has been quite pleasant, but I do enjoy twiddling.
¹ https://codeberg.org/river/river
Edit: I just checked my dotfiles. Awesome went in on 2008-06-09, and river on 2024-06-30. Happy and largely uneventful two years on river.