Good point. I think it’s super important to make this decision early on. Whether you want to invest time and do self hosting, or not and you’ll want to use managed services or regular non-free platforms. Doing things by yourself certainly teaches a lot. I do it. And I gain knowledge, independence and I think it’s important to understand the tools I use on a regular basis and not let Apple/Google take care of my life. And since I do a lot of things with computers, I can make good use of the gained knowledge. However I can also feel how someone wouldn’t want to do that. They might have other hobbies, a stressful job or a family and it’s quite some time that I spend digging through configuration files, reading documentation and maintaining stuff. It has to be worth it in some way, or it becomes a liability. And I think that’s not super obvious when starting the journey. I’m glad we have managed services which give independence without spending too much time. But I also prefer going all the way and learning lots of stuff.
Most people use either Matrix or XMPP. Both work.
There is a nice overview of chat protocols here: https://www.messenger-matrix.de/
I mostly use matrix as of today. I think it’s alright. It’s a bit difficult to explain encryption and device verification to other people… I think that could be designed better. But apart from that it works very well. So does XMPP which I’ve used before that. Have a look at the messenger matrix and all the options before deciding on an ecosystem. I’d take one of the friends and do some evaluation before dragging the whole group in. You can do that with some pre-existing servers before learning how to host the server part.
And btw: With most of them you can just use some public servers. You should do that unless you’re willing to put in the effort to maintain an own server. That’d give you complete control over the infrastructure… But it’s also a liability to maintain a server, do the updates etc for a group of friends and maybe years to come… End to end encryption will keep the content of your messages private, anyways. (If you use it.)