It's the story of every framework. It starts out clean and minimal, then gets features added on as users demand more for more and more specific uses.
See openvpn as an example.
Complexity needs to be managed, not labelled and shunned because it is "too hard" or "ugly". That is life. Learn that early and it will help.