Snikket is a simple, secure and private messaging app (based on XMPP)
For self-hosting though, the project I work on - Snikket - uses XMPP but has all the nice modern things you’d expect ready to go right out of the box, more like a Matrix (Synapse/Element) setup. Probably the biggest thing missing for Snikket right now is an official web app (we currently have Android and iOS apps)....