How should companies develop their open source app?

What do you see as the advantages of each of these three approaches to open source app development for a service?

Suppose a service requires running an app and it’s an open source app. The service provider company might develop their own app, use an interoperable app or fork an existing app for use with their service. Service provider companies like Proton, Mailbox.org, Mullvad, EteSync, Tuta, Signal, JMP take different approaches. What trade-offs should users consider when selecting a service provider regarding the apps that can be used to access the service?

Here’s a basic starter list of advantages of three approaches service providers might use for open source development. What’s missing? What would you edit?

Vendor-specific open source app

Advantages:

  • Features align with the service being provided
  • Possible faster development/innovation
  • Developer has a direct financial incentive to improve the app
  • Trust one entity

Interoperable open source app

Advantages:

  • When the service provider shuts down or a user decides to switch providers, users might be able to continue using the same app and configuration with a different service provider (or self-hosted service)
  • Developer is not biased towards increasing revenue or other service provider objectives
  • Checks and balances-- development primarily oriented toward the users’ best interests
  • Development might be less vulnerable to repressive governments’ demands

Forked open-source app

Advantages:

  • In the event of the service provider going away, the app (or similar forks) might work with other service providers if the service needs to be replaced
  • Development that’s funded by charging for the service can be pushed upstream to some extent which benefits apps which might outlive the service provider
  • A combination of some of the advantages of the other two approaches above

Of course, these might vary based on the particular kind of service being provided, technologies involved and the relevance of existing apps. In some cases, service providers are able to support more than one kind of app (e.g. VPN apps).

In selecting a service provider, users might want to consider which approach the service provider uses to develop apps for the service. What other factors could they consider while making that selection?