So... the additional term is understandable, and sane. You don't want bad forks to break your server. Though it could've been largely left out of this: You could've simply stated that forks are not authorized to use the central server as terms of the server itself, and left the code under an approved open source license.
But the weird bit here is that the license file can only be used in accordance with obeying this software's license... does that mean that the "Lightly-Modified" Apache license is not, in itself, open source? Like, is this meant to read as "Nobody else may release their own software under this license"?
The right place for this term is in the terms and conditions for using the hosted server provided by the project, rather than in a software license.
Honestly, just leave out the default config and have a ToS on the hosted server instance itself. Or just ask for a few donations to pay for direct costs and disable relaying.
As some of you have deduced, the reason we added the extra clause was because we were concerned about supporting modified clients on our rendezvous server. We want to provide a good user experience for everyone using Tandem, and it would be difficult to do that by supporting modified clients as well. Like you pointed out, we don't want potentially bad forks to cause problems for others. The spirit of the license was not to stifle the abilities of others to contribute to or distribute Tandem.
With that said, we’ve heard your feedback and agree that this kind of stipulation is better suited for a terms of service on the server we host. So we’ll be switching to the unmodified Apache 2.0 license and adding a terms of service to request users of modified versions of Tandem to use their own hosted server.
Similar projects in this space:
- Floobits, a similar multi-editor plug-in: https://floobits.com/
- Visual Studio Code Live Share, which also shares all your autocompletion stuff too: https://code.visualstudio.com/visual-studio-live-share
At what level does it interact with the editor?
How does it ensure that the state of the editor is eventually consistent across users?
Does it maintain a copy of the state of the editor?
Is it somehow able to peek into the state of the editor?
That being said, it looks like it attempts to go peer to peer and only uses the server if it has to?