We are still actively working on the spam issue.
XMPP is a federated communication protocol, you can pick a server and client of your liking. There are three plugins for end-to-end encryption with your contacts, you can use either OTR, PGP, or OMEMO, the last one is the most modern and supports the most of XMPP's functions. Good client for GNU/Linux is Dino (GUI) or Profanity (CLI-only), for Android you will want to use Conversations, the design and feature sets of most other clients suck. For Windows you can use Gajim or Pidgin but both could use better design and Pidgin doesn't support OMEMO, Gajim also has a more secure codebase. There is also UWPX but it is in development and you might not like its UI.