Skip to content

Discuss: Changing license from AGPL #392

@bpartridge

Description

@bpartridge

First of all, amazing work - this seems to be a very well designed library!

I am not a lawyer, and this is not legal advice, but the choice of AGPL makes this utterly unusable as part of a commercial web application.

Not only would it require all frontend code to be open sourced, but if it's used in-process in the application server as recommended for server-side rendering (for accessibility or SEO), all backend code for that application process would need to be open sourced as well.

My understanding of AGPL is that if someone interacts over a network, with a process that links to or otherwise derives from AGPL code, then the ENTIRE source code running in that process must be released. AGPL is primarily used for databases, where modifications to the database process are likely to be useful to other users of the database, and thus large companies can't "fork" the database and add their own, say, high-availability features without contributing them back. This is a decent overview: https://www.quora.com/What-is-the-difference-between-GPL-AGPL-and-LGPL-licenses

And even with the GPL (not AGPL), some argue that the entire application, both backend and frontend code, may be considered "part of the same application" and would need to be open sourced: https://www.sencha.com/legal/open-source-faq/

But to have this requirement for application code is a dealbreaker. It would be relegated to standalone deployments with very little value add; people would not, for instance, be able to use this for a help center or wiki inside a commercial product, without having an entirely separate server infrastructure for it and at most embedding it in iframes (which largely defeats the purpose of it being a React library!) And, per Sencha's arguments, even this is in a gray zone.

In theory, something like the LGPL would seem to most closely match the intention; people could link to the ORY Editor on both frontend and backend, and while they would need to contribute upstream any changes they make to the ORY Editor, they would not need to contribute any of their other business logic that embeds the ORY Editor. However, the act of minifying code may in fact tie things closely enough together that a court would see the application as a derivative work; to my knowledge this hasn't been tested in the courts in any country. People like this individual shy away from any GPL or LGPL Javascript library for related reasons: https://www.nczonline.net/blog/2015/12/why-im-not-using-your-open-source-project/

If you want the largest usage (and, by extension, upstream contributions), I'd encourage a license like Apache, BSD, or MIT. React itself is licensed under the BSD 3-clause license to sidestep many of these issues! The ecosystem nowadays is such that the default is to fork on Github anyways and send pull requests upstream, so that the application can benefit from continuous upstream bugfixes and just use the mainline NPM version without needing to maintain a fork. There are so many incentives to contribute that I think many open source projects lose more than they gain by trying to formalize contractual obligations.

Subthread on HN for discussion: https://news.ycombinator.com/item?id=14417763

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions