Notably, Mattermost can be forked to a community edition if the team behind it does anything too user-hostile. It's a fine balance for them to keep their "team edition" nudging users to a supported edition without being so annoying that users are motivated to make that community edition.
I have other reasons to want a community edition personally, but sadly they've been successful enough thus far that there isn't enough interest from other developers to make it happen.
* Fork the server (adjust your CI / build / deploy pipeline)
* Run your own push notification broker
* Fork the iOS client, white-label it, point it at your push server
* Setup apple dev account to publish
* Fork the android client, white-label it, point it at your push server
* Setup google dev account to publish
* Fork the frontend repo, edit to match the white-labelled apps
I have other reasons to want a community edition personally, but sadly they've been successful enough thus far that there isn't enough interest from other developers to make it happen.