I recommend Matrix with the Conduit server. This server requires almost no resources and even runs on a Raspberry Pi.
Cinny works perfectly as a desktop client (in case you want to escape from the ubiquitous Element). And for mobile I would use Element for Android/iOS although FluffyChat also works very well.
Yes, without a doubt, for me it is the most balanced client, a pity that there is not for Android, but well, in mobile Element does not give problems either.
They are very focused on development and therefore the documentation is a bit sparse (maybe).
The truth is that it is not very complicated to install. It is simply to download the binary (it is statically compiled so it has no dependencies) place it in /usr/bin and execute it (the best is to create a user in the machine with the home in /var/lib/conduit and then launch it with systemd).