It is self-hostable, and provides a modern baseline of features (though Riot is the only fully-featured client at the moment).
Burying myself in a walled garden is a no-go, so it has been working pretty well for me so far. I only regret the fact that the reference server implementation consumes a lot of resources, but it should be coming down [1][2] (the current state stems from the proof-of-concept python implementation having grown unchecked over the years), with alternative implementations hopefully becoming viable soon[3].
[0]: https://matrix.org/docs/projects/clients-matrix
[1]: https://github.com/orgs/matrix-org/projects/9