This is a good post.
As for why people don't like systemd, it follows the kitchen-sink approach to software and does a lot of things at once.
For people new to Linux I just want to point out - for better or for worse this goes against the Unix philosophy.
Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
As far as self hosted I’ve heard a lot about matrix but haven’t tried it. Maybe I’ll give it a shot this weekend.
https://matrix.org/
There’s also telegram, slack, etc if you want something else commercial.