Correction: Zulip is 100% open-source software, and has been for a decade now. (I lead the Zulip project). Zulip's protocol, which is used for client/server communication by all major clients, has extensive documentation including the complete change history for the last several years on https://zulip.com/api/ and https://zulip.com/api/changelog.

As far as I know, there is no mechanism through which Zulip could bait-and-switch a customer that Element could not also do. And I think that as a practical matter, it would be a lot easier for a new team to pick up developing Zulip if the Kandra Labs team were to disappear than the similar question for Matrix/Element.

The core reason is that Matrix is far less simple and self-contained than Zulip. I've talked to multiple groups who tried to build apps on top of Matrix and found it too difficult. https://xn--gckvb8fzb.com/giving-up-on-element-and-matrixorg... may be a useful third-party reference.

This isn't to say Matrix is bad. It's just targeting a different niche. Matrix was designed around the requirements of a global social network, where you want to be able to keep writing in channels even in event of a network partition. As a result, Matrix is far more complex and less self-contained than a Zulip server is. If you are doing internal communications with some external guests, you are far safer from technical risk with a robust self-contained system like Zulip than something like Matrix that is also a social network.

Zulip's goal is to be the best way to do complex work, focused on replacing tools like Slack, Teams, and Discord, without the ambition to support a social network, and that changes a lot about the architecture and what we can do in terms of performance and focus on the human experience.