For hosting, I believe the flagship host is Element Matrix Services [2]. It's made by the same organization that leads development (it is all FOSS) of Element and the reference server Synapse.
You can also self-host. Synapse is pretty slow and memory-hungry (it's written in Python), but for a small group it still fits pretty comfortably on a $5 DigitalOcean VPS. That's what I'm doing. It took less than an afternoon to set up (`apt install synapse` and then setting some config, mainly—there are a bunch of good guides online) and has been happily running ever since. Matrix is federated, so as long as you set up federation properly, you can seamlessly message anyone on any federated Matrix server. (Federation is opt-in.)
There's also Dendrite and Conduit, Matrix servers written in Go and Rust respectively, which are much leaner and faster. Both are still in beta and missing some features, but are definitely usable.
If you want to mess around with bots, I've had a lot of fun with both the Matrix Rust SDK [3] and JavaScript bot SDK [4]. Both are quite easy to get started with, and as of a few months ago both support E2EE pretty painlessly too (not totally pain-free though lol), which is cool.
Overall, the ecosystem is still maturing imo, but I've been using self-hosted Synapse and Element "in production"—it's me and my girlfriend's primary method of communication—for over a year now with only some minor UX hiccups (mostly issues decrypting E2EE messages in Element). I definitely encourage giving it a shot as long as you're willing to tolerate a few remaining growing pains.
[1]: https://element.io/get-started
[2]: https://element.io/matrix-services
"for instance Synapse uses 5-10x less RAM than it used to (my personal federated server is only using 145MB of RAM atm!" - https://matrix.org/blog/2022/08/15/the-matrix-summer-special...
As an additional advantage over per-user-priced options, it has very low barriers for loose collaborations. There's no reason to fret over giving someone an account if they might ever use it. And if someone already has a matrix account elsewhere, federation means we can just add their accounts to our rooms.
A Space is a list, phone book, a map that lists a bunch of rooms so you can join many of them conveniently.