There are other ecosystems that are going "fine" that have centralised, official documentation and don't require a third party to intervene and collate documentation and recommendations in an attempt to make it easier for developers. The fact this is necessary, or people feel is necessary, makes me want to avoid XMPP at all costs. That's just my very shallow surface level opinion.
With all that said, i have to say; what you're doing here is commendable. I don't mean to (pardon my language) shit on something you seem to have worked very hard on. Doing something like this isn't an easy task I'm sure.
You see something similar with end-user software like Adobe's entire suite where the official docs are basically useless if you just want to learn the common operations quickly and so you have to rely on third-party books and tutorials (like the Dummies books).
It's just like when you do web stuff you may read from MDN, csstricks or smashing magazine. It doesn't mean that the W3C/IETF specs are useless, far from it. But in my view it's useful to find guidance in a nebula of specifications and endless UX possibilities.
Just look at this relative lack of stuff: https://docs.modernxmpp.org/client/protocol/
People saying "look at all this stuff" is one reason the Modern XMPP project was born. To draw attention to the actually important things that developers need to read.
The XSF receives a lot of submissions each year. Many of these proposals never make it past the "experimental" stage. Others are only applicable in certain domains (IoT, etc.). Over time some of these become widely adopted and progress through the standards process. Some do not.
The XSF publishes annually the "compliance suite" which describes what clients and servers should be supporting in different areas: https://xmpp.org/about/compliance-suites.html
> It has never seen serious adoption because nobody wants to touch it - and for good reasons.
That's outright false. There's many successful commercial products using XMPP right now (eg. WhatsApp/Zoom or games and gaming systems like Fortnite, Origin, League of Legends) including for non-IM usecases (Google Cloud Print, Firebase Cloud Messaging, Nintendo Switch, Apple's push notifications).
In the free-software world, there's actively maintained featureful clients (gajim/dino on desktop and snikket family of clients on mobile) and servers (ejabberd/proosdy/tigase). I can't say there's no bugs but i can say with confidence they're actively being hunted down.
> It leads to ridiculous overengineering through layered complexity.
Layering complexity may sound like engineering, but that's where the "eXtensible" promise of XMPP comes from. The same goes with Matrix/ActivityPub protocol: there's a reason people are doing it this way, and that reason is not "overengineering".
> Take a lesson from IRC, a group-chat protocol that, despite its age, works and scales amazingly well.
The protocol works remarkably well because it's dead simple. However, implementing a decent client/server that plays well with others is not easy (see IRCv4 debates) and each server in practice operates differently, more so even than XMPP servers.
> It wouldn't take much fix the warts on IRC and extend it to cover everything that XMPP tries to do.
Please by all means try. It'll take you far more time to design, and you can be 100% sure you're going to break many existing clients and servers by extending the IRC protocol. XMPP/Matrix clients on the other hand can handle missing features gracefully because the protocol is namespace'd/schema'd properly.
I appreciate that concern for fighting NIH and that's a criticism i've addressed to the Matrix project myself, that it could have been implemented on top of existing XMPP clients and servers with two simple XEPs: one for decentralized chatrooms and state resolution, the other for client-to-server JSON API. But when comparing those newer federated protocols with IRC, i think the comparison has no grounds.
Let me know if you're not convinced by these answers or have more questions.
From a client perspective, picking a good/modern XMPP library will save you a lot of headaches, because a good library is supposed to hide away the complexity. If you're not sure what to pick, just ask around in dev chatrooms.
Happy hacking