Using a binary tree to partition splits is really convenient. It gives you all the manual control of i3 but the default layout is what you want most of the time.
Also it's much more configurable and has useless gaps by default (personal preference).
Looks a lot like the tiling modes I used most often in awesomewm, which I eventually ditched for i3 because the constantly-shifting configuration files were a pain to maintain and broke an extension (shifty) that i3 more-or-less includes by default. I definitely missed the different auto-tiling algorithms in awesomewm, but I've gotten pretty used to manually tiling everything.
Command driven configuration. Everything is scriptable. It also uses a binary tree structure for managing splits, and I found out that I liked that more than the way i3 does it.