You can easily migrate everyone from WhatsApp to Signal and they don't have to exchange usernames as most people have the phonenumbers in their contacts.
(This has massive drawbacks addressed somewhere else, one lesser known fact is that they would have to verify fingerprints anyway to be sure they are speaking to the right person an not a proxy. Instead of that they could also exchange username+fingerprint initially, like Simplex does it.)
You can't easily selfhost Signal. They engineered it purposefully to only run on Big Tech Clouds with specific Intel CPUs they put (too much) trust in.
THATS WRONG!
Signal Server can just do a man in the middle as you try connecting to your contact for the first time. You need to verify the fingerprint manually which is not very obvious and present in the UI.
In SimpleX.chat you automatically verify the fingerprint, as its the way to establish the chat to your contact and is included in the way you distribute the contact to you.
They had it implemented but discarded it out of stupid centralization ideology.
Moxie said it on a Chaos communication Congress presentation he held but which he didn't wanted to be recorded, as the stuff he said was stupid and wrong.
You are trusting the server, or do you verify the fingerprint of EVERY contact of yours?
The normal people don't, as Signals UI purpusfully doesn't encourages it.
That's WRONG they have a Database of every Phone number registered to them and metadata like the last time they logged in.
You send all your contacts numbers to signal so they can respond who is also using Signal.
Your wrong, except the rich person part. That rich guy is the WhatsApp founder, who got the money by selling their users to Facebook.