

For Matrix, what server software are you hosting and what’s your subdomain setup? When logging in, you just enter the domain behind your username (e.g. use example.com if your username is @user:example.com)
Edit: not sure if Snikket supports multiple domains, but its upstream, the Prosody server, does that just fine
Selfhosting both. Continuwuity is more straightforward to set up than ejabberd, mostly because of easier docs, less ports, and less subdomains required. It also comes with most things you need rather than a bunch of toggled-on modules, and I’d say Matrix being HTTP makes it more “conventional” for beginners.
XMPP is significantly more lightweight though, being a message passing protocol rather than state syncing.