Signal is centralized, closed-source, not-selfhostable and requires being attached to a phone number.
Matrix is decentralized, federated, fully open source with multiple client and server implementations, self-hostable, and does not require being attached to a phone number.